建立最簡單的hibernate項目

1. 創建JavaWeb項目,導入hibernate相關支持包。

     hibernate核心包:java

             hibernate3.jarmysql

      required文件夾下的包:sql

      antlr-2.7.6.jar                                             HQL轉sql支持包數據庫

      commons-collections-3.1.jar                      java collecttion的擴展api

      dom4j-1.6.1.jar                                              解析xml的支持包session

      javassist-3.12.0.GA.jar                                    字節碼處理支持包app

      jta-1.1.jar                                                      事物支持相關包dom

      slf4j-api-1.6.1.jar                                            日誌支持相關包測試

      jpa文件夾下的包:ui

      hibernate-jpa-2.0-api-1.0.0.Final.jar                   映射支持相關包

      數據庫鏈接驅動包:             

                mysql-connector-java-5.1.12-bin.jar

 

2.編寫實體類

          好比說建立一個簡單的User實體類,類中有id,name,pwd屬性                 

3.建立 實體類對應的數據庫表

 

4.編寫映射文件:實體類名.hbm.xml(文件名必須符合這個規範)

        在hibernate開發包下拷貝*.hbm.xml文件,進行修改。

 1 <?xml version="1.0"?>
 2 <!-- hibernate 映射文件的約束 -->
 3 <!DOCTYPE hibernate-mapping PUBLIC 
 4     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 5     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
 6 
 7 <hibernate-mapping 
 8     package="com.ly.entity">
 9     <!-- 實體類與數據庫表進行映射 -->
10     <class name="User"  table="t_user">
11         <!--
12              id標籤 做用: 主鍵映射
13                 將實體類屬性id與數據庫表字段id進行映射
14                 name屬性:實體類屬性名
15                 column屬性:數據庫表字段類型名
16          -->
17         <id name="id" column="id">
18             <!-- 指定主鍵的生成策略:native,能夠讓主鍵以自增加的方式生成值 -->
19             <generator class="native"/>
20         </id>
21         
22         <!-- property標籤的做用:非主鍵映射
23                 將實體類屬性與數據庫表字段進行映射
24                 
25                 name屬性:實體類屬性名
26                 column屬性:數據庫表字段類型名
27          -->
28         <property name="name" column="name"></property>
29         <property name="pwd" column="pwd"></property>
30         
31     </class>
32 
33 
34 </hibernate-mapping>

 

 5. 編寫主配置文件 hibernate.cfg.xml(放在src目錄下)

  在hibernate開發包下拷貝hibernate.cfg.xml文件,進行修改

 

 1 <?xml version="1.0"?>
 2 <!-- hibernate主配置文件的約束 -->
 3 <!DOCTYPE hibernate-configuration PUBLIC
 4         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 5         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 6 
 7 <hibernate-configuration>
 8     <session-factory>
 9         <!-- 定義數據庫的方言,做用:讓hibernate生成符合當前數據庫語法規定的sql語句 -->
10         <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
11         <!-- 配置數據庫的鏈接信息 -->
12         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
13         <property name="hibernate.connection.username">root</property>
14         <property name="hibernate.connection.password">1</property>
15         <property name="hibernate.connection.url">jdbc:mysql:///hello</property>
16         <property name="javax.persistence.validation.mode">none</property>  
17         <!-- 加載映射文件 -->
18         <mapping resource="com/ly/entity/User.hbm.xml"/>        
19     </session-factory>
20 </hibernate-configuration>

 

6.編寫測試代碼,

步驟:

      1). 讀取配置文件

      2). 建立sessionFactory

      3). 得到session

      4). 開啓事務

      5). crud

      6). 提交事務(針對異常出現,能夠事務回滾)

      7). 關閉資源

 1 @Test
 2     public void test(){
 3         //1.讀取配置文件信息,並建立管理配置文件信息的對象 cfg。
 4         Configuration cfg = new Configuration();
 5         cfg.configure();//默認加載src目錄下的主配置文件hibernate.cfg.xml。
 6         
 7         //2.利用管理配置文件信息的對象 cfg來建立SessionFactory對象即會話工廠對象。
 8         SessionFactory sf = cfg.buildSessionFactory();
 9         
10         //3.根據會話工廠對象來建立會話對象session
11         Session session = sf.openSession();
12         
13         //4.開啓事物,並獲得事物管理對象tx
14         Transaction tx = session.beginTransaction();
15         //5. 對數據的crud操做
16         
17         User user = new User();
18         user.setName("張三");
19         user.setPwd("123");
20         
21         session.save(user);
22         //6.提交事物
23         tx.commit();
24         
25         //7.關閉資源
26         session.close();
27         sf.close();
28         
29     }
相關文章
相關標籤/搜索