1. 程式人生 > >hibernate——第一次簡單的使用

hibernate——第一次簡單的使用

功能 xml文件 con .get set 了解 args 分享 encoding

提前有jdk、mysql、hibernate必須jar包、mysql連接jar包

技術分享圖片

mysql中的表

技術分享圖片

Java中的bean,User類

 1 package com.xiaostudy.demo;
 2 
 3 public class User {
 4 
 5     private int id;
 6     private String username;
 7     private String password;
 8 
 9     public int getId() {
10         return id;
11     }
12 
13     public
void setId(int id) { 14 this.id = id; 15 } 16 17 public String getUsername() { 18 return username; 19 } 20 21 public void setUsername(String username) { 22 this.username = username; 23 } 24 25 public String getPassword() { 26 return password;
27 } 28 29 public void setPassword(String password) { 30 this.password = password; 31 } 32 33 }

JavaBean的對應xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC 
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"
> 5 6 <!-- 導入bean所在的包路徑 --> 7 <hibernate-mapping package="com.xiaostudy.demo"> 8 <!-- 把bean中的類名和mysql中的表名對應 --> 9 <class name="User" table="user"> 10 <!-- bean中id和mysql中主鍵對應 --> 11 <id name="id" column="id"> 12 <!-- generator:主鍵生成策略 13 1.increment 數據庫自己生成主鍵. 先從數據庫中查詢最大的ID值,將ID值加1作為新的主鍵 14 2.identity 依賴於數據的主鍵自增功能 15 3.sequence 序列,依賴於數據中的序列功能(Oracle). 16 4.hilo(純了解,永遠用不到) : Hibernate自己實現序列的算法,自己生成主鍵. (hilo算法 ) 17 5.native 自動根據數據庫判斷,三選一. identity|sequence|hilo 18 6.uuid 生成32位的不重復隨機字符串當做主鍵 19 7.assigned 自己指定主鍵值. 表的主鍵是自然主鍵時使用. 20 21 --> 22 <generator class="native"></generator> 23 </id> 24 <!-- bean中的屬性和mysql中的字段對應 --> 25 <property name="username" column="username"></property> 26 <property name="password" column="password"></property> 27 </class> 28 </hibernate-mapping>

hibernate的xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC 
 3     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 5     
 6     <!-- 導入bean所在的包路徑 -->
 7 <hibernate-mapping package="com.xiaostudy.demo">
 8     <!-- 把bean中的類名和mysql中的表名對應 -->
 9     <class name="User" table="user">
10         <!-- bean中id和mysql中主鍵對應 -->
11         <id name="id" column="id">
12             <!-- generator:主鍵生成策略
13                      1.increment  數據庫自己生成主鍵. 先從數據庫中查詢最大的ID值,將ID值加1作為新的主鍵
14                     2.identity  依賴於數據的主鍵自增功能
15                     3.sequence    序列,依賴於數據中的序列功能(Oracle).
16                     4.hilo(純了解,永遠用不到) : Hibernate自己實現序列的算法,自己生成主鍵. (hilo算法 )
17                     5.native 自動根據數據庫判斷,三選一. identity|sequence|hilo
18                     6.uuid  生成32位的不重復隨機字符串當做主鍵
19                     7.assigned 自己指定主鍵值. 表的主鍵是自然主鍵時使用.
20                  
21              -->
22             <generator class="native"></generator>
23         </id>
24         <!-- bean中的屬性和mysql中的字段對應 -->
25         <property name="username" column="username"></property>
26         <property name="password" column="password"></property>
27     </class>
28 </hibernate-mapping>

測試Java類

 1 package com.xiaostudy.demo;
 2 
 3 import org.hibernate.SessionFactory;
 4 import org.hibernate.cfg.Configuration;
 5 import org.hibernate.classic.Session;
 6 
 7 public class Test1 {
 8 
 9     public static void main(String[] args) {
10         //加載hibernate.cfg.xml文件,前提是默認放在src目錄下
11         Configuration conf = new Configuration().configure();
12         //根據配置,創建Factory
13         SessionFactory sf = conf.buildSessionFactory();
14         //通過SessionFactory來獲取Session,
15         //getCurrentSession()方法是,獲取當前的Session,一般在事務中使用
16         //但是需要在hibernate.cfg.xml中配置才可以使用
17         //<property name="current_session_context.class">thread</property>
18         Session session = sf.getCurrentSession();
19         User user = new User();
20         user.setUsername("demo3");
21         user.setPassword("123456");
22         session.save(user);
23         //關閉資源
24         session.close();
25         sf.close();
26     }
27 
28 }

技術分享圖片


hibernate——第一次簡單的使用