1. 程式人生 > >hibernate_exercise-many- to-one(1)

hibernate_exercise-many- to-one(1)

ble 測試類 BE close ips Coding app .net one

多對一關系

1.創建t_user表、t_group表

技術分享圖片

技術分享圖片

2.在eclipse中創建對應的實體類

技術分享圖片
 1 package com.eneity;
 2 
 3 public class User {
 4     
 5     private int id;
 6     private String name;
 7     private Group group;//註意這裏不是gid 而是group對象
 8     
 9     public User() {
10         super();
11         // TODO Auto-generated constructor stub
12 } 13 public int getId() { 14 return id; 15 } 16 public void setId(int id) { 17 this.id = id; 18 } 19 public String getName() { 20 return name; 21 } 22 public void setName(String name) { 23 this.name = name; 24 } 25 public Group getGroup() {
26 return group; 27 } 28 public void setGroup(Group group) { 29 this.group = group; 30 } 31 32 33 }
User.java 技術分享圖片
 1 package com.eneity;
 2 
 3 public class Group {
 4     
 5     private int id ;
 6     private String name;
 7     
 8     public Group() {
 9         super
(); 10 // TODO Auto-generated constructor stub 11 } 12 public int getId() { 13 return id; 14 } 15 public void setId(int id) { 16 this.id = id; 17 } 18 public String getName() { 19 return name; 20 } 21 public void setName(String name) { 22 this.name = name; 23 } 24 25 }
Group.java

3.寫對應的xml映射文件

註意:寫好對應的xml文件後要在主配置文件中添加映射

技術分享圖片
 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2018-4-8 16:35:46 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping>
 6     <class name="com.eneity.User" table="t_user">
 7         <id name="id" type="int">
 8             <column name="ID" />
 9             <generator class="native" />
10         </id>
11         <property name="name" type="java.lang.String">
12             <column name="NAME" />
13         </property>
14         <many-to-one name="group" class="com.eneity.Group" fetch="join">
15             <column name="gid" />
16         </many-to-one>
17     </class>
18 </hibernate-mapping>
com/eneity/User.hbm.xml 技術分享圖片
 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 <!-- Generated 2018-4-8 16:35:46 by Hibernate Tools 3.4.0.CR1 -->
 5 <hibernate-mapping>
 6     <class name="com.eneity.Group" table="t_group">
 7         <id name="id" type="int">
 8             <column name="ID" />
 9             <generator class="native" />
10         </id>
11         <property name="name" type="java.lang.String">
12             <column name="NAME" />
13         </property>
14     </class>
15 </hibernate-mapping>
com/eneity/Group.hbm.xml

主配置文件

技術分享圖片
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 8         <property name="hibernate.connection.password">xzt521</property>
 9         <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/myweb</property>
10         <property name="hibernate.connection.username">xzt</property>
11             <!-- 配置顯示sql語句 -->
12         <property name="show_sql">true</property>
13         <!-- 以一定的格式輸出語句 -->
14         <property name="format_sql">true</property>
15         <mapping resource="com/eneity/Group.hbm.xml"/>
16         <mapping resource="com/eneity/User.hbm.xml"/>
17     </session-factory>
18 </hibernate-configuration>
hibernate.cfg.xml

4.寫一個測試類

註意:如果只是要查詢數據,只要開啟session即可

要增刪改的話,要開啟事務管理

最後要提交事務(這樣數據庫中才會存進去數據)

關閉session

技術分享圖片
 1 package com.test;
 2 
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 import org.junit.After;
 8 import org.junit.Before;
 9 import org.junit.Test;
10 
11 import com.eneity.Customers;
12 import com.eneity.Group;
13 import com.eneity.Order;
14 import com.eneity.User;
15 
16 
17 public class Test1 {
18     private SessionFactory buildSessionFactory;
19     private Session Session;
20     private Transaction Transaction;
21 
22     @Before
23     public void before() {
24         Configuration cfg = new Configuration().configure();
25         buildSessionFactory = cfg.buildSessionFactory();
26         Session = buildSessionFactory.openSession();
27         Transaction = Session.beginTransaction();
28         System.out.println(Session);
29         
30         
31     }
32     
33     @Test
34     public void test1() {
35         // TODO Auto-generated method stub
36         
37         Group group = new Group();
38         group.setName("duhao");
39         User user = new User();
40         user.setName("jiunan");
41         user.setGroup(group);
42         Session.save(group);
43         Session.save(user);
44         
45 
46     }
47     
48     @After
49     public void after() {
50         Transaction.commit();
51         Session.close();
52         
53     }
54 }
Test1.java

hibernate_exercise-many- to-one(1)