<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    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 閱讀(952) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 成年人网站在线免费观看| 亚洲mv国产精品mv日本mv| 亚洲天堂男人影院| 青草草在线视频永久免费| 国产精品免费久久久久影院| 亚洲一二成人精品区| 国产精品二区三区免费播放心| 美女无遮挡拍拍拍免费视频| 亚洲国产精品综合久久久| 亚洲国产成人乱码精品女人久久久不卡 | 在线观看亚洲AV每日更新无码 | 亚洲 欧洲 视频 伦小说| 亚洲无码黄色网址| 日韩视频在线精品视频免费观看| 日韩毛片在线免费观看| 亚洲最大中文字幕| 国产亚洲精品资在线| 欧美好看的免费电影在线观看| 韩国免费a级作爱片无码| 亚洲人成图片网站| 亚洲va无码手机在线电影| 国产真人无遮挡作爱免费视频| 久久免费视频99| 美女又黄又免费的视频| 亚洲国产成人九九综合| 亚洲最大AV网站在线观看| 狠狠久久永久免费观看| 18pao国产成视频永久免费| 一道本不卡免费视频| 中文字幕亚洲精品无码| 亚洲AV成人无码久久精品老人| 午夜精品射精入后重之免费观看| 朝桐光亚洲专区在线中文字幕 | 免费做爰猛烈吃奶摸视频在线观看| 一级做a爰片久久毛片免费陪| 伊人久久五月丁香综合中文亚洲| 亚洲AV无码国产精品麻豆天美| 亚洲精品偷拍视频免费观看 | 亚洲综合国产一区二区三区| 免费无码黄动漫在线观看| 免费福利在线播放|