1. 建立JavaWeb項目,導入hibernate相關支持包。
hibernate核心包:
hibernate3.jar
required文件夾下的包:
antlr-2.7.6.jar HQL轉sql支持包
commons-collections-3.1.jar java collecttion的擴展
dom4j-1.6.1.jar 解析xml的支持包
javassist-3.12.0.GA.jar 字節碼處理支持包
jta-1.1.jar 事物支持相關包
slf4j-api-1.6.1.jar 日志支持相關包
jpa文件夾下的包:
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 }
