类一:用户类
package Demo_1_19_角色与权限; //用户类 public class Member { private String mid; private String name; private Role[] roles; public Member() { } public Member(String mid, String name) { this.mid = mid; this.name = name; } public String getMid() { return mid; } public Role[] getRoles() { return roles; } public void setRoles(Role[] roles) { this.roles = roles; } public void setMid(String mid) { this.mid = mid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInfo(){ return "【用户信息】: mid = " + this.mid + "\tname = " + name; } }
类二:角色类
package Demo_1_19_角色与权限; import Demo_1_19_多对多.Menber; // 角色类 public class Role { private long rid; private String title; private Member[] members; private Privilege[] privileges; public Role() { } public Role(long rid, String title) { this.rid = rid; this.title = title; } public Member[] getMembers() { return members; } public void setMembers(Member[] members) { this.members = members; } public Privilege[] getPrivileges() { return privileges; } public void setPrivileges(Privilege[] privileges) { this.privileges = privileges; } public long getRid() { return rid; } public void setRid(long rid) { this.rid = rid; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getInfo(){ return "【角色信息】: rid = " + this.rid + "\ttitle = " + this.title; } }
类三:权限类
package Demo_1_19_角色与权限; //权限类 public class Privilege { private long pid; private String title; private Role role; public Privilege() { } public Privilege(long pid, String title) { this.pid = pid; this.title = title; } public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } public long getPid() { return pid; } public void setPid(long pid) { this.pid = pid; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getInfo(){ return "【权限信息】: pid = " + this.pid + "\ttitle = " + this.title; } }
主类:
package Demo_1_19_角色与权限; public class Main { public static void main(String[] args) { // 根据结构设置对象数据 Member mem1 = new Member("mldn-1","张三"); Member mem2 = new Member("mldn-2","李四"); Role role1 = new Role(1L,"系统配置"); Role role2 = new Role(2L,"备份管理"); Role role3 = new Role(3L,"人事管理"); Privilege pri1 = new Privilege(101L,"系统初始化"); Privilege pri2 = new Privilege(102L,"系统还原"); Privilege pri3 = new Privilege(103L,"系统环境修改"); Privilege pri4 = new Privilege(201L,"备份员工数据"); Privilege pri5 = new Privilege(202L,"备份部门数据"); Privilege pri6 = new Privilege(203L,"备份公文数据"); Privilege pri7 = new Privilege(301L,"增加员工"); Privilege pri8 = new Privilege(302L,"编辑员工"); Privilege pri9 = new Privilege(303L,"浏览员工"); Privilege pri10 = new Privilege(304L,"辞退员工"); //增加角色与权限的对应关系 role1.setPrivileges(new Privilege[]{pri1,pri2,pri3}); role2.setPrivileges(new Privilege[]{pri4,pri5,pri6}); role3.setPrivileges(new Privilege[]{pri7,pri8,pri9,pri10}); //增加权限与角色的对应关系 pri1.setRole(role1); pri2.setRole(role1); pri3.setRole(role1); pri4.setRole(role2); pri5.setRole(role2); pri6.setRole(role2); pri7.setRole(role3); pri8.setRole(role3); pri9.setRole(role3); pri10.setRole(role3); // 增加用户与角色的对应关系 mem1.setRoles(new Role[]{role1,role2}); mem2.setRoles(new Role[]{role1,role2,role3}); //增加角色与用户的对应关系 role1.setMembers(new Member[]{mem1}); role2.setMembers(new Member[]{mem1,mem2}); role3.setMembers(new Member[]{mem2}); //根据要求获取数据 System.out.println("------- 查看用户下的角色信息 -------"); System.out.println("\n" + mem1.getInfo()); for (Role role : mem1.getRoles()) { System.out.println("\t|-" + role.getInfo()); } System.out.println("\n" + mem2.getInfo()); for (Role role : mem2.getRoles()) { System.out.println("\t|-" + role.getInfo()); } System.out.println("\n*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*-*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*\n"); System.out.println("------- 查看角色下的用户信息 -------"); System.out.println("\n" + role1.getInfo()); for (Member member : role1.getMembers()) { System.out.println("\t|-" + member.getInfo()); } System.out.println("\n" + role2.getInfo()); for (Member member : role2.getMembers()) { System.out.println("\t|-" + member.getInfo()); } System.out.println("\n" + role3.getInfo()); for (Member member : role3.getMembers()) { System.out.println("\t|-" + member.getInfo()); } System.out.println("\n*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*-*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*\n"); System.out.println("------- 查看角色的权限 -------"); System.out.println("\n" + role1.getInfo()); for (Privilege privilege : role1.getPrivileges()) { System.out.println("\t|-" + privilege.getInfo()); } System.out.println("\n" + role2.getInfo()); for (Privilege privilege : role2.getPrivileges()) { System.out.println("\t|-" + privilege.getInfo()); } System.out.println("\n" + role3.getInfo()); for (Privilege privilege : role3.getPrivileges()) { System.out.println("\t|-" + privilege.getInfo()); } System.out.println("\n*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*-*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*—*\n"); System.out.println("------- 查看权限所属的角色 -------"); System.out.println("\n" + pri1.getInfo()); System.out.println("\t|-" + pri1.getRole().getInfo()); System.out.println("\n" + pri2.getInfo()); System.out.println("\t|-" + pri2.getRole().getInfo()); System.out.println("\n" + pri3.getInfo()); System.out.println("\t|-" + pri3.getRole().getInfo()); System.out.println("\n" + pri4.getInfo()); System.out.println("\t|-" + pri4.getRole().getInfo()); System.out.println("\n" + pri5.getInfo()); System.out.println("\t|-" + pri5.getRole().getInfo()); System.out.println("\n" + pri6.getInfo()); System.out.println("\t|-" + pri6.getRole().getInfo()); System.out.println("\n" + pri7.getInfo()); System.out.println("\t|-" + pri7.getRole().getInfo()); System.out.println("\n" + pri8.getInfo()); System.out.println("\t|-" + pri8.getRole().getInfo()); System.out.println("\n" + pri9.getInfo()); System.out.println("\t|-" + pri9.getRole().getInfo()); System.out.println("\n" + pri10.getInfo()); System.out.println("\t|-" + pri10.getRole().getInfo()); } }
经供参考
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)