hibernate——第一次簡單的使用
阿新 • • 發佈:2018-08-21
功能 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 publicvoid 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——第一次簡單的使用