角色 权限 菜单 用户

架构设计图

pojo

Permission

public class Permission implements Serializable{

    private Integer pid;
    private String description;
    private String keyword;
    private String pname;
    //一个权限包含多个角色
    private Set<Role> permission_roles = new HashSet<Role>(0) ;
    set/get()...

user

public class User implements Serializable {
    // 用户编号
    private Integer id;
    // 用户密码
    private String password;
    // 用户名
    private String userName;
    // 性别
    private String sex;
    // 用户状态
    private Integer status;
    //多對多
    private Set<Role> user_roles = new HashSet<Role>(0);
    set/get()...

Menu

public class NavigationBar implements Serializable {

    private Integer nbid;

    // 导航栏名称
    private String navname;

    // 导航地址
    private String path;

    // 是否隐藏
    private boolean hidden;

    private String fatherNode;

    // 顺序
    private String orders;

    private String icon;

    // 模块集合
    private List<NavigationBar> childList;
    //多對多
    private Set<Role> meun_roles = new HashSet<Role>(0);
    set/get()...

role

public class Role implements Serializable {

    private Integer roleId;
    // 角色编号
    private String roleCode;
    // 角色名称
    private String name;
    // 创建时间
    private Date createtime;
    // 修改时间
    private Date updatetime;
    // 相当于 keyword-----角色关键字,用于权限控制
    private String remark;

    //一对多
    private Set<Permission> permissions =new HashSet<Permission>(0);
    private Set<NavigationBar> navigationBars = new HashSet<NavigationBar>(0);
    private Set<User> users = new HashSet<User>(0);
    set/get()...

DDL

user

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `userCode` varchar(40) DEFAULT NULL COMMENT '用户原始编号',
  `PASSWORD` varchar(40) DEFAULT NULL COMMENT '用户密码',
  `userName` varchar(20) DEFAULT NULL,
  `sex` varchar(4) DEFAULT NULL COMMENT '性别',
  `roleCode` varchar(20) DEFAULT NULL COMMENT '权限编号',
  `STATUS` int(11) DEFAULT NULL COMMENT '用户状态 1.激活 2.未激活 3.新学期老师确认信息',
  `u_createtime` datetime DEFAULT NULL,
  `u_updatetime` datetime DEFAULT NULL,
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8

t_user_role

CREATE TABLE `t_user_role` (
  `role_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY (`role_id`,`user_id`),
  KEY `FK_USER_ID` (`user_id`),
  CONSTRAINT `FK_ROLE_ID` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`),
  CONSTRAINT `FK_USER_ID` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

t_role

CREATE TABLE `role` (
  `roleId` int(11) NOT NULL AUTO_INCREMENT,
  `roleCode` varchar(20) DEFAULT NULL COMMENT '角色编号',
  `rname` varchar(20) DEFAULT NULL,
  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
  `updatetime` datetime DEFAULT NULL COMMENT '修改时间',
  `remark` varchar(50) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`roleId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8

t_role_menu

CREATE TABLE `t_role_menu` (
  `role_id` int(11) NOT NULL,
  `menu_id` int(11) NOT NULL,
  PRIMARY KEY (`role_id`,`menu_id`),
  KEY `FK_ROLEMENU_MENU` (`menu_id`),
  CONSTRAINT `FK_ROLEMENU_MENU` FOREIGN KEY (`menu_id`) REFERENCES `navigationbar` (`nbid`),
  CONSTRAINT `FK_ROLEMENU_ROLE` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

t_MENU

CREATE TABLE `navigationbar` (
  `nbid` int(11) NOT NULL AUTO_INCREMENT,
  `nbcode` varchar(15) DEFAULT NULL,
  `navname` varchar(20) DEFAULT NULL,
  `path` varchar(50) DEFAULT NULL,
  `hidden` tinyint(1) DEFAULT NULL,
  `fatherNode` varchar(15) DEFAULT NULL,
  `orders` varchar(15) DEFAULT NULL,
  `remark` varchar(50) DEFAULT NULL,
  `icon` varchar(150) DEFAULT NULL,
  `component` varchar(150) DEFAULT NULL,
  PRIMARY KEY (`nbid`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8

t_role_permission

CREATE TABLE `t_role_permission` (
  `role_id` int(11) NOT NULL,
  `permission_id` int(20) NOT NULL,
  PRIMARY KEY (`permission_id`,`role_id`),
  KEY `FK_ROLE` (`role_id`),
  CONSTRAINT `FK_PERMISSION` FOREIGN KEY (`permission_id`) REFERENCES `t_permission` (`pid`),
  CONSTRAINT `FK_ROLE` FOREIGN KEY (`role_id`) REFERENCES `role` (`roleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

t_permission

CREATE TABLE `t_permission` (
  `pid` int(20) NOT NULL AUTO_INCREMENT,
  `description` varchar(50) DEFAULT NULL,
  `keyword` varchar(50) DEFAULT NULL,
  `pname` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8

mapper.xml

RoleMapper.xml

<!-- 一对多关联查询  -->
     <resultMap type="Role" id="ROLE_PERMISSION_MAP">
        <id column="roleId" property="roleId"></id>
        <result property="roleCode" column="roleCode" />
        <result property="name" column="rname" />
        <result property="createtime" column="createtime" />
        <result property="updatetime" column="updatetime" />
        <result property="remark" column="remark" />

        <!-- collection:配置一对多关系
             property:ROLE下的permissions属性
             ofType:property的数据类型,支持别名
        -->          
        <collection property="permissions" ofType="permission">
            <id column="pid" property="pid"/>
            <result column="description" property="description"/>
            <result column="pname" property="pname"/>
            <result column="keyword" property="keyword"/>
        </collection>

        <collection property="navigationBars" ofType="navigationBar">
            <id property="nbid" column="nbid" />
            <result property="nbcode" column="nbcode" />
            <result property="navname" column="navname" />
            <result property="path" column="path" />
            <result property="hidden" column="hidden" />
            <result property="fatherNode" column="fatherNode" />
            <result property="icon" column="icon" />
            <result property="component" column="component" />
            <result property="orders" column="orders" />
            <result property="remark" column="remark" />
        </collection> 

        <collection property="users" ofType="user">
            <id property="id" column="id" />
            <result property="userCode" column="userCode" />
            <result property="password" column="password" />
            <result property="userName" column="name" />
            <result property="sex" column="sex" />
            <result property="status" column="status" />
            <result property="createtime" column="u_createtime" />
            <result property="updatetime" column="u_updatetime" />
            <result property="remark" column="remark" />
        </collection>

    </resultMap>

NavigationBarMapper.xml

<!--菜单和角色一对多  -->
    <resultMap type="NavigationBar" id="ROLE_NAVIGATIONBAR_MAP">
        <id property="nbid" column="nbid" />
        <result property="nbcode" column="nbcode" />
        <result property="navname" column="navname" />
        <result property="path" column="path" />
        <result property="hidden" column="hidden" />
        <result property="fatherNode" column="fatherNode" />
        <result property="icon" column="icon" />
        <result property="component" column="component" />
        <result property="orders" column="orders" />
        <result property="remark" column="remark" />

        <collection property="meun_roles" ofType="role">
            <id column="roleId" property="roleId"></id>
            <result property="roleCode" column="roleCode" />
            <result property="name" column="rname" />
            <result property="createtime" column="createtime" />
            <result property="updatetime" column="updatetime" />
            <result property="remark" column="remark" />
        </collection>
    </resultMap>

UserMapper.xml

<!-- 菜单和角色 -->
    <resultMap type="User" id="ROLE_USER_MAP">
        <id property="id" column="id" />
        <result property="userCode" column="userCode" />
        <result property="password" column="password" />
        <result property="userName" column="userName" />
        <result property="sex" column="sex" />
        <result property="status" column="status" />
        <result property="createtime" column="u_createtime" />
        <result property="updatetime" column="u_updatetime" />
        <result property="remark" column="remark" />

         <collection property="user_roles" ofType="role">
            <id column="roleId" property="roleId"></id>
            <result property="roleCode" column="roleCode" />
            <result property="name" column="rname" />
            <result property="createtime" column="createtime" />
            <result property="updatetime" column="updatetime" />
            <result property="remark" column="remark" />
        </collection>
    </resultMap>

PermissionMapper.xml

<!-- 权限和角色一对多 -->
 <resultMap type="Permission" id="ROLE_PERMISSION_MAP">
        <id property="pid" column="pid" />
        <result property="pname" column="pname" />
        <result property="keyword" column="keyword" />
        <result property="description" column="description" />

         <collection property="permission_roles" ofType="role">
            <id column="roleId" property="roleId"></id>
            <result property="roleCode" column="roleCode" />
            <result property="name" column="rname" />
            <result property="createtime" column="createtime" />
            <result property="updatetime" column="updatetime" />
            <result property="remark" column="remark" />
        </collection>
    </resultMap>
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值