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>