Hibernate的一对多实例
一对多在现实生活中很常见,今天做了个Hibernate的一对多的实例,也是个入门过程,写下来跟大家分享。
最重要的是xml配置文件,之前因为把英文"(引号)错误的复制成中文的“”(引号),导致后面编译各种出问题,排查了好久,也百度了各种博客,最后发现是引号的问题。
在现实生活中,部门和员工的关系属于一对多的,一个部门有多个员工,一个员工属于一个部门。
第一步,创建Java工程,名字为HibernateMapping,把Hibernate的jar包和sql server的jar包(或者mysql的jar包)导入进来,并创建Employee,Department实体类和xml配置文件。目录结构和hibernate包如下:
第二步,编辑Employee和Department实体类,代码如下:
1 package cn.hibernate.onetomany; 2 3 public class Employee { 4 private int empNo;//工号 5 private String empName;//姓名 6 private Department dep;//部门 7 public int getEmpNo() { 8 return empNo; 9 } 10 public void setEmpNo(int empNo) { 11 this.empNo = empNo; 12 } 13 public String getEmpName() { 14 return empName; 15 } 16 public void setEmpName(String empName) { 17 this.empName = empName; 18 } 19 public Department getDep() { 20 return dep; 21 } 22 public void setDep(Department dep) { 23 this.dep = dep; 24 } 25 public Employee(int empNo, String empName, Department dep) { 26 27 this.empNo = empNo; 28 this.empName = empName; 29 this.dep = dep; 30 } 31 32 public Employee(){ 33 34 } 35 }
1 package cn.hibernate.onetomany; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 public class Department { 7 private int depId;//部门号 8 private String depName;//部门名 9 private Set<Employee> emps = new HashSet<Employee>(); 10 public int getDepId() { 11 return depId; 12 } 13 public void setDepId(int depId) { 14 this.depId = depId; 15 } 16 public String getDepName() { 17 return depName; 18 } 19 public void setDepName(String depName) { 20 this.depName = depName; 21 } 22 public Set<Employee> getEmps() { 23 return emps; 24 } 25 public void setEmps(Set<Employee> emps) { 26 this.emps = emps; 27 } 28 29 public Department(int depId, String depName, Set<Employee> emps) { 30 this.depId = depId; 31 this.depName = depName; 32 this.emps = emps; 33 } 34 35 public Department(){ 36 37 } 38 }