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
原创粉丝点击