Hibernate操作权限系统(管理员、角色、组、权限)
来源:互联网 发布:网络传销模式 编辑:程序博客网 时间:2024/06/05 19:12
本次所用代码可从本人网盘下载:
Java代码简示:
class Admin{//管理员 private int id; private String password; private Role role; public Admin(int id,String password){this.id=id;this.password=password;} public void setRole(Role role){this.role=role;} public Role getRole(){return this.role;} public String getInfo(){return "账号:"+id+",密码:"+password;}}class Role{//角色 private int id; private String title; private Admin admin []; private Group group []; public Role(int id,String title){this.id=id;this.title=title;} public void setAdmin(Admin admin []){this.admin=admin;} public Admin [] getAdmin(){return this.admin;} public void setGroup(Group group []){this.group=group;} public Group [] getGroup(){return this.group;} public String getInfo(){return "角色编号:"+id+",角色名称:"+title;}}class Group{//组 private int id; private String title; private Action action []; private Role role []; public Group(int id,String title){this.id=id;this.title=title;} public void setAction(Action action []){this.action=action;} public Action [] getAction(){return this.action;} public void setRole(Role role []){this.role=role;} public Role [] getRole(){return this.role;} public String getInfo(){return "组编号:"+id+",组名称:"+title;}}class Action{//权限 int id; private String title; private String url; private Group group; public void setGroup(Group group){this.group=group;} public Group getGroup(){return this.group;} public Action(int id,String title,String url){this.id=id;this.title=title;this.url=url;} public String getInfo(){return "权限编号:"+id+",权限名称:"+title+",权限地址:"+url;}}public class Admini{//主类 public static void main(String args[]){ Admin a1=new Admin(1,"root"); Admin a2=new Admin(2,"test"); Admin a3=new Admin(3,"use"); Role r1=new Role(11,"组织管理员"); Role r2=new Role(12,"运营管理员"); Group g1=new Group(101,"生产管理"); Group g2=new Group(102,"财务管理"); Group g3=new Group(103,"销售管理"); Group g4=new Group(104,"并购管理"); Group g5=new Group(105,"专利管理"); Action ac01=new Action(1001,"生产计划","--"); Action ac02=new Action(1002,"生产进度","--"); Action ac03=new Action(1003,"生产产量","--"); Action ac04=new Action(1004,"财务审核","--"); Action ac05=new Action(1005,"财务支出","--"); Action ac06=new Action(1006,"销售利润","--"); Action ac07=new Action(1007,"销售员列表","--"); Action ac08=new Action(1008,"销售调研","--"); Action ac09=new Action(1009,"确认并购","--"); Action ac10=new Action(1010,"放弃并购","--"); Action ac11=new Action(1011,"专利查询","--"); Action ac12=new Action(1012,"专利营收","--"); //设置关系 //管理员与角色 a1.setRole(r1); a2.setRole(r2); a2.setRole(r2); r1.setAdmin(new Admin[]{a1}); r2.setAdmin(new Admin[]{a2,a3}); //角色与组 r1.setGroup(new Group[]{g1,g2,g3,g4,g5}); r2.setGroup(new Group[]{g1,g2,g3}); g1.setRole(new Role[]{r1,r2}); g2.setRole(new Role[]{r1,r2}); g3.setRole(new Role[]{r1,r2}); g4.setRole(new Role[]{r2}); g5.setRole(new Role[]{r2}); //组与权限 g1.setAction(new Action[]{ac01,ac02,ac03}); g2.setAction(new Action[]{ac04,ac05}); g3.setAction(new Action[]{ac06,ac07,ac08}); g4.setAction(new Action[]{ac09,ac10}); g5.setAction(new Action[]{ac11,ac12}); ac01.setGroup(g1);ac02.setGroup(g1);ac03.setGroup(g1); ac04.setGroup(g2);ac05.setGroup(g2);ac06.setGroup(g3); ac07.setGroup(g3);ac08.setGroup(g3);ac09.setGroup(g4); ac10.setGroup(g4);ac11.setGroup(g5);ac12.setGroup(g5); //取得数据 System.out.println(a1.getInfo()); System.out.println(a1.getRole().getInfo()); System.out.println("-----------------------------------------------------"); System.out.println(r2.getInfo()); for(int i=0;i<r2.getGroup().length;i++){ System.out.println(r2.getGroup()[i].getInfo()); } System.out.println("-----------------------------------------------------"); System.out.println(g2.getInfo()); for(int i=0;i<g2.getAction().length;i++){ System.out.println(g2.getAction()[i].getInfo()); } System.out.println("-----------------------------------------------------"); //角色的权限->两层循环 System.out.println(r2.getInfo()); for(int i=0;i<r2.getGroup().length;i++){ for(int j=0;j<r2.getGroup()[i].getAction().length;j++){ System.out.println(r2.getGroup()[i].getAction()[j].getInfo()); } } System.out.println("-----------------------------------------------------"); //组的角色 System.out.println(g2.getInfo()); for(int i=0;i<g2.getRole().length;i++) System.out.println(g2.getRole()[i].getInfo()); System.out.println("-----------------------------------------------------"); //角色的管理员 System.out.println(r2.getInfo()); for(int i=0;i<r2.getAdmin().length;i++) System.out.println(r2.getAdmin()[i].getInfo()); }}
利用Hibernate生产表
<mapping resource="com/zhiqi/model/Admin.hbm.xml"/><mapping resource="com/zhiqi/model/Role.hbm.xml"/><mapping resource="com/zhiqi/model/Group.hbm.xml"/><mapping resource="com/zhiqi/model/Action.hbm.xml"/>
设计1对多,多对多的关系
往数据库里添加一些数据,做好关联关系
然后
package com.zhiqi.service;import java.util.Iterator;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.zhiqi.model.Action;import com.zhiqi.model.Admin;import com.zhiqi.model.Group;import com.zhiqi.model.Role;import com.zhiqi.util.HibernateUtil;public class FirstTest {private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();private Session session;@Beforepublic void setUp() throws Exception {session=sessionFactory.openSession(); // 生成一个session session.beginTransaction(); // 开启事务}@Afterpublic void tearDown() throws Exception { session.getTransaction().commit(); // 提交事务 session.close(); // 关闭session}@Testpublic void firstCreateTable(){}@Testpublic void firstSetData(){}@Testpublic void firstGetData(){Admin admin1=(Admin)session.get(Admin.class, Integer.valueOf(1));Admin admin2=(Admin)session.get(Admin.class, Integer.valueOf(2));Admin admin3=(Admin)session.get(Admin.class, Integer.valueOf(3));//System.out.println(admin1);//System.out.println(admin2);//System.out.println(admin3);//System.out.println(admin1.getRole());//System.out.println(admin2.getRole());//System.out.println(admin3.getRole());//某角色的组//Role role2=(Role)session.get(Role.class, Integer.valueOf(2));////Iterator it=role2.getGroupSet().iterator();//while(it.hasNext()){//System.out.println((Group)it.next());//}//某组的权限//Group group2=(Group)session.get(Group.class, Integer.valueOf(2));//Iterator it=group2.getActionSet().iterator();//while(it.hasNext()){//System.out.println((Action)it.next());//}//某组的角色//Group group3=(Group)session.get(Group.class, Integer.valueOf(3));//Iterator it=group3.getRoleSet().iterator();//while(it.hasNext()){//System.out.println((Role)it.next());//}//角色的管理员Role role2=(Role)session.get(Role.class, Integer.valueOf(2));Iterator it=role2.getAdminSet().iterator();while(it.hasNext()){System.out.println((Admin)it.next());}}}
这样就可以用Hibernate来操作数据库了。
0 0
- Hibernate操作权限系统(管理员、角色、组、权限)
- 数据库管理员用户角色组权限设计
- Oracle 系统权限、对象权限、角色权限
- 解决获取管理员组系统权限
- 权限系统--角色管理
- 权限管理系统(4):角色和组
- 权限系统--角色授权与权限变更
- 系统角色与权限分析
- 基于角色的权限系统
- C#关于角色权限系统
- Oracle角色以及系统权限
- oracle角色权限,系统权限和对象权限
- Oracle的对象权限、角色权限、系统权限
- Oracle的对象权限、角色权限、系统权限
- (转载)管理员组获取系统权限的完美解决方案
- 管理员组获取系统权限的完美解决方案
- 管理员组获取系统权限的完美解决方案
- 管理员组获取系统权限的完美解决方案
- ubuntu更新python3之后,系统更新软件报错解决方法。
- iOS 在TabBarController视图切换的时候添加动画
- apache
- spring data jpa中的DTO查询
- dataguard类型转换与模式转化
- Hibernate操作权限系统(管理员、角色、组、权限)
- 使用Http的Get方法读取网络数据
- WDF
- 哈夫曼树
- Python之gzip文件读写
- 关于idea 2016开发环境新手导航
- app接口设计之token的php实现
- hibernate框架的理解重点
- oracle --sql--查询日期区间的数据