歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 結合HSQLDB測試Hibernate實例

結合HSQLDB測試Hibernate實例

日期:2017/3/1 10:08:09   编辑:Linux編程

一、數據庫結構

  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. }
  23. }

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. } catch (HibernateException e) {
  15. e.printStackTrace();
  16. }
  17. }
  18. }

12、正確執行程序

Copyright © Linux教程網 All Rights Reserved