The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
           

          Hibernate是用來操作數據庫的,當然要結合數據庫來使用。但是公司的電腦是不能隨便安裝軟件的,即使是mysql的免安裝版,也要把驅動文件放到windows下,沒有權限是做不到的。因此推薦一個hsqldb數據庫,是java語言寫的。不需要安裝。下面介紹如何結合hibernatehsqldb

          1、 下載hsqldb

          http://hsqldb.org/

          將下載下來的文件解壓,文件結構如圖

           

          打開demo文件夾

           

          注意里面的幾個文件runManager.batrunServer.batmy_server.batrunManagerSwing.bat

          runServer.bat是來開啟數據庫服務,runManager.batrunManagerSwing.bat是數據庫管理界面,可以在里面輸入sql語句來執行。注意my_server.bat是自己加進去的,內容是:

          cd ../data

          java -cp ../lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 hibernate

          hibernate是數據庫名,自己隨便寫,也可以寫成mydb等等

          2、 啟動hsqldb

          先執行my_server.bat,然后執行runServer.bat,最后執行runManager.bat或者runManagerSwing.bat,本例中以runManager.bat為例,啟動界面,配置如圖

           

          注意url中不要忘記hibernate這個數據庫名。

          點擊ok,如圖,里面有個名字為user的表

           

          Hsqldb就配置到這里。

          3、 下面hibernate的配置,首先自己建一個user library,把hibernate所有的必須的jar包都添加進去,在hibernate文件夾中有,自己添加一下。

          然后新建一個java項目hibernateDemo,將剛才自己定義的庫加到工程里。配置到此結束。

          4、 我們現在src文件下定義hibernate的配置文件hibernate.cfg.xml文件,內容如下

           

           

           

          1. <?xml version='1.0' encoding='UTF-8'?>  
          2.   
          3. <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
          4.   
          5. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
          6.   
          7. <hibernate-configuration>  
          8.   
          9.     <session-factory>  
          10.   
          11.        <property name="myeclipse.connection.profile">hsql</property>  
          12.   
          13.        <property name="connection.url">jdbc:hsqldb:hsql://localhost/hibernate</property>  
          14.   
          15.        <property name="connection.username">sa</property>  
          16.   
          17.        <property name="connection.password"></property>  
          18.   
          19.        <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>  
          20.   
          21.        <property name="dialect">org.hibernate.dialect.HSQLDialect</property>  
          22.   
          23.        <property name="show_sql">true</property>  
          24.   
          25.        <property name="connection.autocommit">true</property>  
          26.   
          27.        <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>  
          28.   
          29.    
          30.   
          31.          
          32.   
          33.        <mapping resource="com/zhoubo/hibernate/User.hbm.xml" />  
          34.   
          35.    
          36.   
          37.     </session-factory>  
          38.   
          39. </hibernate-configuration>  

           

          5、 在文件夾src下定義一個package  com.zhoubo.hibernate 在里面新建一個User類,如下

           

          1. package com.zhoubo.hibernate;  
          2.   
          3.    
          4.   
          5. public class User {  
          6.   
          7.    
          8.   
          9.     private String id;  
          10.   
          11.     private String password;  
          12.   
          13.     private char sex;  
          14.   
          15.     private int age;  
          16.   
          17.       
          18.   
          19.     public String getId() {  
          20.   
          21.        return id;  
          22.   
          23.     }  
          24.   
          25.     public void setId(String id) {  
          26.   
          27.        this.id = id;  
          28.   
          29.     }  
          30.   
          31.     public String getPassword() {  
          32.   
          33.        return password;  
          34.   
          35.     }  
          36.   
          37.     public void setPassword(String password) {  
          38.   
          39.        this.password = password;  
          40.   
          41.     }  
          42.   
          43.     public char getSex() {  
          44.   
          45.        return sex;  
          46.   
          47.     }  
          48.   
          49.     public void setSex(char sex) {  
          50.   
          51.        this.sex = sex;  
          52.   
          53.     }  
          54.   
          55.     public int getAge() {  
          56.   
          57.        return age;  
          58.   
          59.     }  
          60.   
          61.     public void setAge(int age) {  
          62.   
          63.        this.age = age;  
          64.   
          65.     }  
          66.   
          67.       
          68.   
          69. }  

           

          在里面定義一個User類的配置文件User.hbm.xml

           

          1. <?xml version='1.0' encoding='UTF-8'?>  
          2.   
          3. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
          4.   
          5.         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
          6.   
          7. <hibernate-mapping>  
          8.   
          9.     <class name="com.zhoubo.hibernate.User" table="User">  
          10.   
          11.          
          12.   
          13.         <id name="id" column="User_id">  
          14.   
          15.             <generator class="uuid"/>  
          16.   
          17.         </id>  
          18.   
          19.         <property name="password"/>  
          20.   
          21.         <property name="sex"/>  
          22.   
          23.         <property name="age"/>  
          24.   
          25.     </class>  
          26.   
          27. </hibernate-mapping>  

           

          并且在hibernate.cfg.xml中來注冊這個user.hbm.xml,也就是我們在hibernate.cfg.xml中看到的

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

           

          下面我們就來通過hibernate來在數據庫生成user表,定義一個DBExport類,如下

           

          1. package com.zhoubo.hibernate;  
          2.   
          3.    
          4.   
          5. import org.hibernate.cfg.Configuration;  
          6.   
          7. import org.hibernate.tool.hbm2ddl.SchemaExport;  
          8.   
          9.    
          10.   
          11. public class DBExport {  
          12.   
          13.    
          14.   
          15.     public static void main(String ...arg){  
          16.   
          17.        Configuration cfg = new Configuration().configure();  
          18.   
          19.        SchemaExport export = new SchemaExport(cfg);  
          20.   
          21.        export.create(true, true);  
          22.   
          23.     }  
          24.   
          25.    
          26.   
          27. }  

           

          可以通過desc user來查詢表的屬性,可以看到表已經生成了。

          下面我們來在表中插入數據,定義一個hibernateUtil類和Client類,如下

           

          1. package com.zhoubo.hibernate;  
          2.   
          3. import org.hibernate.Session;  
          4. import org.hibernate.SessionFactory;  
          5. import org.hibernate.cfg.Configuration;  
          6.   
          7. public class HibernateUtils {  
          8.   
          9.     private static SessionFactory factory ;  
          10.       
          11.     static {  
          12.         try{  
          13.             Configuration cfg = new Configuration().configure();  
          14.             factory = cfg.buildSessionFactory();  
          15.         }catch(Exception e){  
          16.             e.printStackTrace();  
          17.         }  
          18.     }  
          19.       
          20.     public static Session getSession(){  
          21.         return factory.openSession();  
          22.     }  
          23.       
          24.     public static SessionFactory getSessionFactory(){  
          25.         return factory;  
          26.     }  
          27.       
          28.     public static void closeSession(Session session){  
          29.         session.close();  
          30.     }  
          31. }  

           

          1. package com.zhoubo.hibernate;  
          2.   
          3.    
          4.   
          5. import org.hibernate.Session;  
          6.   
          7. import org.hibernate.Transaction;  
          8.   
          9.    
          10.   
          11. public class Client {  
          12.   
          13.    
          14.   
          15.     public static void main(String ...args){  
          16.   
          17.        User user = new User();  
          18.   
          19.        Session session = null;  
          20.   
          21.        Transaction tx = null;  
          22.   
          23.        try{  
          24.   
          25.            session = HibernateUtils.getSession();  
          26.   
          27.            tx = session.beginTransaction();  
          28.   
          29.              
          30.   
          31.            user.setAge(18);  
          32.   
          33.            user.setPassword("hello");  
          34.   
          35.            user.setSex('m');  
          36.   
          37.              
          38.   
          39.            session.save(user);  
          40.   
          41.            tx.commit();  
          42.   
          43.              
          44.   
          45.        }catch(Exception e){  
          46.   
          47.            e.printStackTrace();  
          48.   
          49.            tx.rollback();  
          50.   
          51.        }finally{  
          52.   
          53.            HibernateUtils.closeSession(session);  
          54.   
          55.        }  
          56.   
          57.          
          58.   
          59.          
          60.   
          61.     }  
          62.   
          63. }  

           

          通過查詢,我們可以看到插入的值。

          posted on 2012-08-31 11:17 Eric_jiang 閱讀(953) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 翁源县| 万山特区| 永州市| 天津市| 大姚县| 揭西县| 鄂伦春自治旗| 彰化县| 大足县| 罗定市| 崇左市| 青浦区| 临海市| 胶南市| 土默特右旗| 汨罗市| 新化县| 衡东县| 永川市| 陵川县| 太仆寺旗| 广宁县| 大悟县| 龙口市| 金山区| 思茅市| 定安县| 彭水| 凤冈县| 长宁区| 区。| 洪湖市| 疏勒县| 焦作市| 古交市| 南漳县| 英德市| 萍乡市| 深圳市| 新丰县| 高青县|