Shiro权限学习使用hibernate注解实现多对多设计杨万豪.docx
- 文档编号:29366109
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:16
- 大小:905.34KB
Shiro权限学习使用hibernate注解实现多对多设计杨万豪.docx
《Shiro权限学习使用hibernate注解实现多对多设计杨万豪.docx》由会员分享,可在线阅读,更多相关《Shiro权限学习使用hibernate注解实现多对多设计杨万豪.docx(16页珍藏版)》请在冰豆网上搜索。
Shiro权限学习使用hibernate注解实现多对多设计杨万豪
Shiro权限学习(使用hibernate注解实现多对多设计)
1、导入jar包
2、加入配置文件
3、编写数据库
4、编写实体类,关联主键,并多对多注解的方式生成中间表
代码:
@Entity
@Table(name="t_user")
publicclassUser{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="uid",length=12)
privateintid;
@Column
privateStringuname;
@Column
privateStringupass;
@Column
privateStringrealName;
@ManyToOne(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
@JoinColumn(name="roleid",insertable=true,updatable=false)
privateRolerole;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetUname(){
returnuname;
}
publicvoidsetUname(Stringuname){
this.uname=uname;
}
publicStringgetUpass(){
returnupass;
}
publicvoidsetUpass(Stringupass){
this.upass=upass;
}
publicStringgetRealName(){
returnrealName;
}
publicvoidsetRealName(StringrealName){
this.realName=realName;
}
publicRolegetRole(){
returnrole;
}
publicvoidsetRole(Rolerole){
this.role=role;
}
、@Entity
@Table(name="t_role")
publicclassRole{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="rid",length=12)
privateintrid;
@Column
privateStringname;
@Column
privateStringmemo;
//拥有多个权限
//多对多加fetch=FetchType.EAGER
@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE},fetch=FetchType.EAGER)
@JoinTable(name="t_role_pers",
joinColumns={@JoinColumn(name="r_id",referencedColumnName="rid")},
inverseJoinColumns={@JoinColumn(name="p_id",referencedColumnName="pid")})
privateSet
publicintgetRid(){
returnrid;
}
publicvoidsetRid(intrid){
this.rid=rid;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetMemo(){
returnmemo;
}
publicvoidsetMemo(Stringmemo){
this.memo=memo;
}
publicSet
returnpers;
}
publicvoidsetPers(Set
this.pers=pers;
}
}
@Entity
@Table(name="t_permission")
publicclassPermission{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="pid",length=12)
privateintpid;
@Column
privateStringurl;
@Column
privateStringmemo;
//拥有多个权限
@ManyToMany(mappedBy="pers")
privateSet
publicintgetPid(){
returnpid;
}
publicvoidsetPid(intpid){
this.pid=pid;
}
publicStringgetUrl(){
returnurl;
}
publicvoidsetUrl(Stringurl){
this.url=url;
}
publicStringgetMemo(){
returnmemo;
}
publicvoidsetMemo(Stringmemo){
this.memo=memo;
}
publicSet
returnroles;
}
publicvoidsetRoles(Set
this.roles=roles;
}
}
5、编辑实体类对应的dao接口
6、实现dao接口
7、编写控制器
8、编写配置文件
9、编写类继承AuthorizingRealm并实现方法
/ShiroDemo_ssh/WebRoot/WEB-INF/web.xml
/ShiroDemo_ssh/src/applicationContext-mvc.xml
/ShiroDemo_ssh/src/applicationContext.xml
/ShiroDemo_ssh/src/jdbc.properties
/ShiroDemo_ssh/src/shiro-config.xml
/ShiroDemo_ssh/src/spring-hibernate.xml
/ShiroDemo_ssh/src/spring.xml
编写控制器类和自定义类,在登录方法中调用shiro系统login方法
Jsp文件夹
Index.Jsp通过shiro:
hasPermission标签自动判断权限
所有功能实现后部署到服务器,打开浏览器登录后
增加用户
用户列表
修改删除
修改前
修改后
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shiro 权限 学习 使用 hibernate 注解 实现 设计 杨万豪