我有2张表:User表{id,username,password}表示用户登录名和密码
employee表{id,emp_name,sex}表示员工名和性别
要求:登录名和员工名一一对应,并且我将user保存到session中后,能够通过#session.user.employee.emp_name直接在页面上取到员工名。
最好能写个例子出来,thanks!
employee表{id,emp_name,sex}表示员工名和性别
要求:登录名和员工名一一对应,并且我将user保存到session中后,能够通过#session.user.employee.emp_name直接在页面上取到员工名。
最好能写个例子出来,thanks!
private int id;
private String userName;
private String password;
}class Employee extends User{
private String sex;
}
这样就可以保存你想要的信息,而且还具有一定的拓展性,你可以添加任意你要的其他的用户角色
1public class Person {
2
3 private int id;
4
5 private String name;
6
7 private IdCard idCard;
8//省略setter、getter方法
9}2、IdCard的POJO类:
1public class IdCard {
2
3 private int id;
4
5 private String cardNo;
6
7 private Person person;
8//省略setter、getter方法
9}3、Person的映射文件Person.hbm.xml
1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5<hibernate-mapping>
6 <class name="org.apple.hibernate.Person" table="t_person">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="name"/>
11 <many-to-one name="idCard" unique="true"/>
12 </class>
13</hibernate-mapping>
4、IdCard的映射文件IdCard.hbm.xml
1<?xml version="1.0"?>
2<!DOCTYPE hibernate-mapping PUBLIC
3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
5<hibernate-mapping>
6 <class name="org.apple.hibernate.IdCard" table="t_idcard">
7 <id name="id">
8 <generator class="native"/>
9 </id>
10 <property name="cardNo"/>
11 <one-to-one name="person" property-ref="idCard"/>
12 </class>
13</hibernate-mapping>
public class Person { private int id;
private String name;
private IdCard idCard;
//省略setter、getter方法
}2、IdCard的POJO类:
public class IdCard {
private int id;
private String cardNo;
private Person person;
//省略setter、getter方法
}3、Person的映射文件Person.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.apple.hibernate.Person" table="t_person">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="idCard" unique="true"/>
</class>
</hibernate-mapping>4、IdCard的映射文件IdCard.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.apple.hibernate.IdCard" table="t_idcard">
<id name="id">
<generator class="native"/>
</id>
<property name="cardNo"/>
<one-to-one name="person" property-ref="idCard"/>
</class>
</hibernate-mapping>
private int id;
private String userName;
private String password;
private Employee emplyoee; //省略getXX setXX
}
User表中加入一个Emplyee的外键,2个对象关联起来就OK了
package coffeeJavaW.domain;/**
* 用户类
* @author coffeeJavaW
*
*/
public class User { private String id;
private String username;
private String password;
private Employee emp; public Employee getEmp() {
return emp;
} public void setEmp(Employee emp) {
this.emp = emp;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
package coffeeJavaW.domain;/**
* 员工
* @author coffeeJavaW
*
*/
public class Employee { private String id;
private String empName;
private String sex; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getEmpName() {
return empName;
} public void setEmpName(String empName) {
this.empName = empName;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
}
coffeeJavaW.domain.User.hbm.xml<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="coffeeJavaW.domain">
<class name="User" table="t_user">
<id name="id">
<generator class="uuid"/>
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<many-to-one name="emp" column="empId" unique="true"/>
</class>
</hibernate-mapping>Employee.hbm.xml<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="coffeeJavaW.domain">
<class name="Employee" table="t_emp">
<id name="id">
<generator class="uuid"/>
</id>
<property name="empName" column="empName"/>
<property name="sex" column="sex"/>
</class>
</hibernate-mapping>
* 员工
* @author coffeeJavaW
*
*/
public class Employee { private String id;
private String empName;
private String sex;
public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getEmpName() {
return empName;
} public void setEmpName(String empName) {
this.empName = empName;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
}
}
package coffeeJavaW.domain;/**
* 用户类
* @author coffeeJavaW
*
*/
public class User { private String id;
private String username;
private String password;
private Employee emp; public Employee getEmp() {
return emp;
} public void setEmp(Employee emp) {
this.emp = emp;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}User.hbm.xml >><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="coffeeJavaW.domain">
<class name="User" table="t_user">
<id name="id">
<generator class="foreign">
<param name="property">emp</param>
</generator>
</id>
<property name="username" column="username"/>
<property name="password" column="password"/>
<one-to-one name="emp" constrained="true"/>
</class>
</hibernate-mapping>Employee.hbm.xml >><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="coffeeJavaW.domain">
<class name="Employee" table="t_emp">
<id name="id">
<generator class="uuid"/>
</id>
<property name="empName" column="empName"/>
<property name="sex" column="sex"/>
</class>
</hibernate-mapping>以上是一对一单项关联的关系