第 1 章 Hibernate_day03
今日任务
案例一:使用 Hibernate 完成一对多的关联关系映射并操作
案例二:使用 Hibernate 完成多对多的关联关系映射并操作
教学导航
教学目标
教学方法 案例驱动法
案例一: 完成多对多的关联关系映射并操作
1.1案例需求
1.1.1 需求描述
用户即使用系统的用户, 包括业务员、 总经理等角色, 不同类型的用户使用系统不同的功能,
本功能要完成给用户分配角色, 功能包括: 给用户分配权限、 取消用户分配的角色。
1.2相关知识点
1.2.1 Hibernate 的多对多关联关系映射
1.2.1.1 创建表:
创建 sys_user、 sys_role、 sys_user_role 三张表。
数据模型如下:
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
先后导入下边的 sql:
crm_sys_user.sql
crm_sys_role.sql
crm_sys_user_role.sql
1.2.1.2 创建实体
【 用户实体】
public class User {
private Long user_id;
private String user_code;
private String user_name;
private String user_password;
private String user_state;
// 用户所属的角色的集合:
private Set<Role> roles = new HashSet<Role>();
public Long getUser_id() {
return user_id;
}p
ublic void setUser_id(Long user_id) {
this.user_id = user_id;
}p
ublic String getUser_code() {
return user_code;
}p
ublic void setUser_code(String user_code) {
this.user_code = user_code;
}p
ublic String getUser_name() {
return user_name;
}p
ublic void setUser_name(String user_name) {
this.user_name = user_name;
}p
ublic String getUser_password() {
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
return user_password;
}p
ublic void setUser_password(String user_password) {
this.user_password = user_password;
}p
ublic String getUser_state() {
return user_state;
}p
ublic void setUser_state(String user_state) {
this.user_state = user_state;
}p
ublic Set<Role> getRoles() {
return roles;
}p
ublic void setRoles(Set<Role> roles) {
this.roles = roles;
}
}
【 角色实体】
public class Role {
private Long role_id;
private String role_name;
private String role_memo;
// 一个角色包含多个用户:
private Set<User> users = new HashSet<User>();
public Long getRole_id() {
return role_id;
}p
ublic void setRole_id(Long role_id) {
this.role_id = role_id;
}p
ublic String getRole_name() {
return role_name;
}p
ublic void setRole_name(String role_name) {
this.role_name = role_name;
}p
ublic String getRole_memo() {
return role_memo;
}p
ublic void setRole_memo(String role_memo) {
this.role_memo = role_memo;
}
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
public Set<User> getUsers() {
return users;
}p
ublic void setUsers(Set<User> users) {
this.users = users;
}
}
1.2.1.3 创建映射
【 用户的映射:】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<