日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(5)hibernate多对一,一对多,一对一,多对多

發布時間:2024/1/23 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (5)hibernate多对一,一对多,一对一,多对多 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多對一關聯

1 映射與原理分析


2 例子結構圖


3代碼

3.1 Department.java

package com.learning;public class Department {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

3.2 Employee.java

package com.learning;public class Employee {private int id;private String name;private Department depart;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Department getDepart() {return depart;}public void setDepart(Department depart) {this.depart = depart;}}

3.3 Department.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="department" name="Department"><id name="id"><generator class="native"/></id><property name="name"/></class></hibernate-mapping>

3.4 Employee.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="employee" name="Employee"><id name="id"><generator class="native"/></id><property name="name"/><many-to-one name="depart" column="depart_id"></many-to-one></class></hibernate-mapping

3.5 ManyToOneTest.java

package com.test;import java.util.Date; import java.util.List;import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;import com.learning.Department; import com.learning.Employee;public class ManyToOneTest {private SessionFactory sessionFactory;{this.init();}private void init(){Configuration cfg = new Configuration();sessionFactory= cfg.configure().buildSessionFactory();}/*** 多對一測試* */private void add(){Session session = this.sessionFactory.openSession();session.beginTransaction();Department department = new Department();department.setName("depart name");Employee employee1 = new Employee();employee1.setDepart(department);employee1.setName("emp name1");Employee employee2 = new Employee();employee2.setDepart(department);employee2.setName("emp name2");session.save(department);session.save(employee1);session.save(employee2);session.getTransaction().commit();session.close();}public static void main(String[] args) {ManyToOneTest manyToOneTest = new ManyToOneTest();manyToOneTest.add();}}

4 Sql語句


5 數據庫結果


一對多關聯

1映射與原理分析


2例子結構圖


3 代碼

3.1? Department.java

package com.learning;import java.util.HashSet; import java.util.Set;public class Department {private int id;private String name;private Set<Employee> emps = new HashSet<Employee>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Employee> getEmps() {return emps;}public void setEmps(Set<Employee> emps) {this.emps = emps;}}

3.2Employee.java

package com.learning;public class Employee {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

3.3 Department.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="department" name="Department"><id name="id"><generator class="native"/></id><property name="name"/><set name="emps"><key column="depart_id"/><one-to-many class="Employee"/></set></class></hibernate-mapping>

3.4 Employee.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="employee" name="Employee"><id name="id"><generator class="native"/></id><property name="name"/></class></hibernate-mapping>

3.5 OneToManyTest.java

package com.test;import java.util.Date; import java.util.List;import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;import com.learning.Department; import com.learning.Employee;public class OneToManyTest {private SessionFactory sessionFactory;{this.init();}private void init(){Configuration cfg = new Configuration();sessionFactory= cfg.configure().buildSessionFactory();}/*** 一對多測試* */private void add(){Session session = this.sessionFactory.openSession();session.beginTransaction();Department department = new Department();department.setName("depart name");Employee employee1 = new Employee();employee1.setName("emp name1");Employee employee2 = new Employee();employee2.setName("emp name2");department.getEmps().add(employee1);department.getEmps().add(employee2);session.save(employee1);session.save(employee2);session.save(department);session.getTransaction().commit();session.close();}public static void main(String[] args) {OneToManyTest oneToManyTest = new OneToManyTest();oneToManyTest.add();}}

4 Sql語句


5數據庫結果





一對一關聯

1 映射與原理分析


2 例子結構圖


3 代碼

3.1IdCard.java

package com.learning;public class IdCard {private int id;private String name;private Person person;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}

3.2 Person.java

package com.learning;public class Person {private int id;private String name;private IdCard idCard;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public IdCard getIdCard() {return idCard;}public void setIdCard(IdCard idCard) {this.idCard = idCard;}}

3.3 IdCard.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="idCard" name="IdCard"><id name="id"> <!-- 一對一映射關鍵位置 --><generator class="foreign"><param name="property">person</param></generator></id><property name="name"/><one-to-one name="person"/></class></hibernate-mapping>

3.4 Person.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="person" name="Person"><id name="id"><generator class="native"/></id><property name="name"/><one-to-one name="idCard"/></class></hibernate-mapping>

3.5 OneToOneTest.java

package com.test;import java.util.Date; import java.util.List;import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;import com.learning.IdCard; import com.learning.Person;public class OneToOneTest {private SessionFactory sessionFactory;{this.init();}private void init(){Configuration cfg = new Configuration();sessionFactory= cfg.configure().buildSessionFactory();}/*** 一對一測試* */private void add(){Session session = this.sessionFactory.openSession();session.beginTransaction();IdCard idCard = new IdCard();idCard.setName("idCard name");Person person = new Person();person.setName("person name");person.setIdCard(idCard);idCard.setPerson(person);session.save(person);session.save(idCard);session.getTransaction().commit();session.close();}public static void main(String[] args) {OneToOneTest oneToOneTest = new OneToOneTest();oneToOneTest.add();}}

4 Sql語句


5?數據庫記錄




四 多對多關聯

1映射與原理分析


2例子結構圖


3代碼

3.1 Student.java

package com.learning;import java.util.HashSet; import java.util.Set;public class Student {private int id;private String name;private Set<Teacher> teachers = new HashSet<Teacher>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;}}

3.2 Teacher.java

package com.learning;import java.util.HashSet; import java.util.Set;public class Teacher {private int id;private String name;private Set<Student> students = new HashSet<Student>();public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Student> getStudents() {return students;}public void setStudents(Set<Student> students) {this.students = students;}}

3.3 Student.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="student" name="Student"><id name="id"><generator class="native"/></id><property name="name"/><set name="teachers" table="teacher_student"><key column="student_id"/><many-to-many class="Teacher" column="teacher_id"/></set></class></hibernate-mapping>

3.4 Teacher.hbm.xml

<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.learning"><class table="teacher" name="Teacher"><id name="id"><generator class="native"/></id><property name="name"/><set name="students" table="teacher_student"><key column="teacher_id"/><many-to-many class="Student" column="student_id"/></set></class></hibernate-mapping>

3.5 ManyToManyTest.java

package com.test;import java.util.Date; import java.util.List;import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration;import com.learning.Student; import com.learning.Teacher;public class ManyToManyTest {private SessionFactory sessionFactory;{this.init();}private void init(){Configuration cfg = new Configuration();sessionFactory= cfg.configure().buildSessionFactory();}/*** 多對多測試* */private void add(){Session session = this.sessionFactory.openSession();session.beginTransaction();Student student1 =new Student();student1.setName("student1");Student student2 =new Student();student2.setName("student2");Teacher teacher1 = new Teacher();teacher1.setName("teacher1");Teacher teacher2 = new Teacher();teacher2.setName("teacher2");Teacher teacher3 = new Teacher();teacher3.setName("teacher3");Teacher teacher4 = new Teacher();teacher4.setName("teacher4");teacher1.getStudents().add(student1);teacher1.getStudents().add(student2);student1.getTeachers().add(teacher3);student1.getTeachers().add(teacher4);session.save(teacher3);session.save(teacher4);session.save(teacher1);session.save(teacher2);session.save(student1);session.save(student2);session.getTransaction().commit();session.close();}public static void main(String[] args) {ManyToManyTest manyToManyTest = new ManyToManyTest();manyToManyTest.add();}}

4 Sql語句


5數據庫截圖









創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的(5)hibernate多对一,一对多,一对一,多对多的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。