歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

結合HSQLDB測試Hibernate實例

一、數據庫結構

  1. createtable User ( 
  2. idinteger not null, 
  3. namevarchar(255), 
  4. passvarchar(255),       
  5. primarykey (id) 
  6. )

 二、建立測試實例

1、 新建普通java項目

2、 項目下新建lib文件夾(放置引用jar包)

3、db(放置hsqlDB的數據庫文件)文件夾

4、解壓hibernate文件夾,將hibernate-release-4.0.1.Final\lib\required目錄下的jar文件拷貝到項目的lib下,將hsqldb.jar(下載地址http://hsqldb.org/)拷貝到lib目錄下,並引入到工程

(3、4也可建立用戶庫,再引入項目)

5、 項目Src目錄下hibernate建立連接數據庫的配置文件 hibernate.cfg.xml

 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE hibernate-configuration 
  3.    PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" 
  4.    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
  5. <hibernate-configuration> 
  6.     <session-factory> 
  7.         <!-- 是否將運行期生成的SQL輸出到日志以供調試 --> 
  8.         <property name="show_sql">true</property> 
  9.         <!-- SQL方言,這裡設定的是HSQL --> 
  10.         <property name="dialect">org.hibernate.dialect.HSQLDialect</property> 
  11.         <!-- JDBC驅動程序 --> 
  12.         <property name="connection.driver_class">org.hsqldb.jdbcDriver 
  13.         </property> 
  14.         <!-- JDBC URL,User為數據庫名 ; hsqldb.write_delay=false持久化 --> 
  15.         <property name="connection.url"> jdbc:hsqldb:file:./db/User;hsqldb.write_delay=true 
  16.         </property> 
  17.         <!-- 設置數據庫中的表用hibernate自動建立,一般不需要不斷重新建表 --> 
  18.         <property name="hibernate.hbm2ddl.auto">create</property> 
  19.         <!-- 數據庫用戶名 --> 
  20.         <property name="connection.username">sa</property> 
  21.         <!-- 數據庫密碼 --> 
  22.         <property name="connection.password"></property> 
  23.         <!-- 指定User的映射文件,這個地方應該在建立文件後添加到此處 --> 
  24.         <mapping resource="<SPAN >com/hibernate/test/User.hbm.xml</SPAN>/> 
  25.     </session-factory> 
  26. </hibernate-configuration> 

6、 新建包:com.hibernate.test 以及包下的實體類user.java.實體通數據庫映射文件User.hbm.xml、測試類Test.java

7、 實體類屬性要同數據庫字段名稱相同,並有set和get方法 

 
  1. public class User { 
  2.     private long id; 
  3.     private String name; 
  4.     private String pass; 
  5.     public long getId() { 
  6.         return id; 
  7.     } 
  8.     public void setId(long id) { 
  9.         this.id = id; 
  10.     } 
  11.     public String getName() { 
  12.         return name; 
  13.     } 
  14.     public void setName(String name) { 
  15.         this.name = name; 
  16.     } 
  17.     public String getPass() { 
  18.         return pass; 
  19.     } 
  20.     public void setPass(String pass) { 
  21.         this.pass = pass; 
  22.     }     

 8、 實體類數據庫映射文件一般以 實體類名.hbm.xml命名:內容

 
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">     
  3. <hibernate-mapping> 
  4.    <class name="<SPAN >com.hibernate.test.User</SPAN>" table="User"> 
  5.        <id name="id"> 
  6.            <generator class="increment"/> 
  7.        </id> 
  8.        <property name="name"/> 
  9.        <property name="pass" />     
  10.    </class> 
  11. </hibernate-mapping> 

 9、.hbm.xml中對應的實體類位置要寫正確

<class name="com.hibernate.test.User" table="User">

 

10、 將User.hbm.xml 添加到hibernate.cfg.xml中:使用全路徑(包括包名)

<!-- 指定User的映射文件,這個地方應該在建立文件後添加到此處 -->

<mapping resource="com/hibernate/test/User.hbm.xml" />

11、 建立測試文件Test.java

 
  1. public class Test { 
  2.      public static void main(String[] args) { 
  3.       try { 
  4.        SessionFactory sf = new Configuration().configure() 
  5.          .buildSessionFactory(); 
  6.        Session session = sf.openSession(); 
  7.        Transaction tx = session.beginTransaction(); 
  8.            User user = new User(); 
  9.            user.setName("李雷"); 
  10.            user.setPass("123456"); 
  11.            session.save(user); 
  12.        tx.commit(); 
  13.        session.close(); 
  14.        
  15.       } catch (HibernateException e) { 
  16.        e.printStackTrace(); 
  17.       } 
  18.      } 
  19.     }

 12、正確執行程序

Copyright © Linux教程網 All Rights Reserved