1. 程式人生 > >Hibernate學習(2)入門案例

Hibernate學習(2)入門案例

上篇部落格已經把Hibernate概念和其中的核心介面介紹,下面舉個例項新增使用者來介紹Hibernate如何使用。

1、匯入jar檔案

    • 匯入antlr-2.7.6.jar
    • 匯入commons-collections-3.1.jar
    • 匯入dom4j-1.6.1.jar
    • 匯入hibernate-jpa-2.0-api-1.0.1.Final.jar
    • 匯入hibernate3.jar
    • 匯入javassist-3.12.0.GA.jar
    • 匯入jta-1.1.jar
    • 匯入mysql-connector-java-3.1.13-bin.jar
    • 匯入slf4j-api-1.6.1.jar

這一部分沒有過多的解釋,只需要大家瞭解每個

jar檔案包的作用即可。

2、編輯實體

[java] view plaincopyprint?
  1. package com.entity;    
  2. import java.util.Date;    
  3. publicclass User {    
  4.     private String id;      
  5.     private String name;        
  6.     private String password;        
  7.     private Date createTime;        
  8.     private Date expireTime;    
  9.     public String getId() {    
  10.         return id;    
  11.     }    
  12.     publicvoid setId(String id) {    
  13.         this.id = id;    
  14.     }     
  15.     public String getName() {    
  16.         return name;    
  17.     }     
  18.     publicvoid setName(String name) {    
  19.         this.name = name;    
  20.     }     
  21.     public
     String getPassword() {    
  22.         return password;    
  23.     }     
  24.     publicvoid setPassword(String password) {    
  25.         this.password = password;    
  26.     }      
  27.     public Date getCreateTime() {    
  28.         return createTime;    
  29.     }      
  30.     publicvoid setCreateTime(Date createTime) {    
  31.         this.createTime = createTime;    
  32.     }    
  33.     public Date getExpireTime() {    
  34.         return expireTime;    
  35.     }      
  36.     publicvoid setExpireTime(Date expireTime) {    
  37.         this.expireTime = expireTime;    
  38.     }    
  39. }  

這一步與普通的JDBC沒有太大的區別,在JDBC中我們也可以通過實體封裝需要的資訊,如果你對面向物件程式設計有一定的瞭解相信不難理解。

3、建立資料庫、表

建立資料庫

說明: https://img-blog.csdn.net/20130616175235015

建立表

說明: https://img-blog.csdn.net/20130616175648453

顯示錶結構

說明: https://img-blog.csdn.net/20130616175712656

這一步就是一個建立資料庫的過程,與我們平常做專案使用的資料庫結構和過程也沒有區別。

4、建立實體對映檔案User.hbm.xml

[html] view plaincopyprint?
  1. <?xmlversion="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC     
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"    
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  5. <hibernate-mapping>
  6.     <classname="com.entity.User">
  7.         <idname="id">
  8.             <generatorclass="uuid"/>
  9.         </id>
  10.         <propertyname="name"/>
  11.         <propertyname="password"/>
  12.         <propertyname="createTime"/>
  13.         <propertyname="expireTime"/>
  14.     </class>
  15. </hibernate-mapping>

從這一步開始,JDBC開始與Hibernate有一定的區別,這裡我們重點講一下User.hbm.xml的作用。User.hbm.xml的作用簡而言之就是對實體和資料庫中的表進行相呼應,保證我們對實體物件進行的操作都會在資料庫中產生與之對應響應的結果。但僅這樣的配置還有一個問題那就是我們如何將能夠將資料庫中的表與物件進行關聯。這就需要接下來的配置了。

5、建立資料庫連線和對映配置檔案 hibernate.cfg.xml

[html] view plaincopyprint?
  1. <!DOCTYPE hibernate-configuration PUBLIC    
  2.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    
  3.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5.     <session-factory>
  6.         <propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
  7.         <propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property>
  8.         <propertyname="hibernate.connection.username">root</property>
  9.         <propertyname="hibernate.connection.password">root</property>
  10.         <propertyname="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  11.         <propertyname="hibernate.show_sql">true</property>
  12.         <mappingresource="com/entity/User.hbm.xml"/>
  13.     </session-factory>
  14. </hibernate-configuration>

這裡的重點區別在於,通過對映說明<mapping resource="com/entity/User.hbm.xml"/>我們可以將資料庫連線和對映進行聯絡,也就是說通過hibernate.cfg.xml的配置,我們就可以找到具體的實體和資料庫表對應關係。到此為止我們所有的配置就進行完畢了,接下來做一個測試。

6、建立測試檔案 Client.java 

[java] view plaincopyprint?
  1. package test;    
  2. import java.util.Date;    
  3. import org.hibernate.Session;    
  4. import org.hibernate.SessionFactory;    
  5. import org.hibernate.cfg.Configuration;    
  6. import com.entity.User;    
  7. publicclass Client {    
  8.     publicstaticvoid main(String[] args) {    
  9.         //讀取hibernate.cfg.xml檔案  
  10.         Configuration cfg = new Configuration().configure();    
  11.         //建立SessionFactory  
  12.         SessionFactory factory = cfg.buildSessionFactory();    
  13.         //取得session  
  14.         Session session = null;    
  15.         try {    
  16.             session = factory.openSession();    
  17.             //開啟事務  
  18.             session.beginTransaction();