1.画图理解
2.执行步骤(用户和权限)
(1)创建实体类,在实体类中表示相互之间关系
package com.sq.entity;
import java.util.HashSet;
import java.util.Set;
/**
*@author sq
*
*/
public class Role {
private String r_id;
private String r_name;
//表示一个权限可以有多个用户一起使用
Set<User> users = new HashSet<User>();
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
public String getR_id() {
return r_id;
}
public void setR_id(String r_id) {
this.r_id = r_id;
}
public String getR_name() {
return r_name;
}
public void setR_name(String r_name) {
this.r_name = r_name;
}
@Override
public String toString() {
return "Role [r_id=" + r_id + ", r_name=" + r_name + "]";
}
}
package com.sq.entity;
import java.util.HashSet;
import java.util.Set;
/**
*@author sq
*
*/
public class User {
private String u_id;
private String u_name;
private String u_password;
//表示一个用户可以有多种权限
Set<Role> users = new HashSet<Role>();
public String getU_id() {
return u_id;
}
public void setU_id(String u_id) {
this.u_id = u_id;
}
public String getU_name() {
return u_name;
}
public void setU_name(String u_name) {
this.u_name = u_name;
}
public String getU_password() {
return u_password;
}
public void setU_password(String u_password) {
this.u_password = u_password;
}
@Override
public String toString() {
return "User [u_id=" + u_id + ", u_name=" + u_name + ", u_password="
+ u_password + "]";
}
}
(2)配置映射文件,在映射文件中表示多对多的关系
<?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">
<hibernate-mapping>
<class name="com.sq.entity.User" table="t_user">
<id name="u_id">
<generator class="uuid"></generator>
</id>
<property name="u_name"></property>
<property name="u_password"></property>
<!--
在用户映射文件中表示多个权限
name属性:set集合名称
table:第三张表的名称
-->
<set name="roles" table="user_role">
<!--
column:是指当前映射文件对应实体类在第三张表中外键名称
-->
<key column="u_id"></key>
<!--
class:集合实体类的全路劲
column:集合实体类对应第三张表的外键
-->
<many-to-many class="com.sq.entity.Role" column="r_id"></many-to-many>
</set>
</class>
</hibernate-mapping>
<?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">
<hibernate-mapping>
<class name="com.sq.entity.Role" table="t_role">
<id name="r_id">
<generator class="uuid"></generator>
</id>
<property name="r_name"></property>
<!--
在用户映射文件中表示多个权限
name属性:set集合名称
table:第三张表的名称
-->
<set name="users" table="user_role">
<!--
column:是指当前映射文件对应实体类在第三张表中外键名称
-->
<key column="r_id"></key>
<!--
class:集合实体类的全路劲
column:集合实体类对应第三张表的外键
-->
<many-to-many class="com.sq.entity.User" column="u_id"></many-to-many>
</set>
</class>
</hibernate-mapping>