標籤:har 調試 顯示 close 檔案配置 port 名稱 gets roo
本節將開始。使用hibernate搭建持久層。當然在決定用不用之前,還請斟酌一下是否使用。瞭解一下Hibernate的優缺點。
Hibernate優劣對照
Hibernate是一個持久的ORM架構。首先要簡曆一個Java Project 這個就不用多說了吧。之後。我們來搭建Hibernate架構。
第一步:引入相關Jar包。包括兩部分,核心jar包(Hibernate_Home/hibernate3.jar)和相關包(Hibernate_Home/lib/*.jar)如。
假設沒有,請去下載Hibernate。解壓之後
第二步:建立實體類*.java
package com.bjpowernode.hibernate;import java.util.Date;public class User {//主鍵private String id;//名稱private String name;//密碼private String password;//提供getter和setter方法public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
第三步:提供*.hbm.xml檔案,該檔案能夠說是實體產生表的設定檔。Hibernate會依據你寫的實體類和對應的對應檔產生資料庫表。
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping ><class name="com.bjpowernode.hibernate.User"><id name="id"><generator class="uuid"/></id><property name="name"/><property name="password"/><property name="createTime"/><property name="expireTime"/></class></hibernate-mapping>
第四步:提供hibernate.cfg.xml檔案,完畢主要的配置資訊。並將*.hbm.xml檔案配置進入。(能夠參考並改動成自己的)依據自己的需求進行取捨。
cfg.xml是整個Hibernate的入口配置
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- Hibernate要串連資料庫的驅動。(此處使用mysql的,假設使用的替他資料庫的,請上網尋找) --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><!-- 指定串連資料庫的url,此處資料庫名為:hibernate_demo --><property name="hibernate.connection.url">jdbc:mysql:///hibernate_demo</property><!-- 資料庫的username與password --><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">root</property><!-- 資料庫的方言(用於將物件模型的儲存產生對應的sql語句) --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 該項為true,當與資料庫互動的時候,將在Console中列印 sql語句,方便學習 --><property name="hibernate.show_sql">true</property> <!-- 指定串連池裡最大串連數 --> <property name="hibernate.c3p0.max_size">20</property> <!-- 指定串連池裡最小串連數 --> <property name="hibernate.c3p0.min_size">1</property> <!-- 指定串連池裡串連的逾時時間長度 --> <property name="hibernate.c3p0.timeout">5000</property> <!-- 配置此屬性,程式會依據須要自己主動建立表 --> <property name="hbm2ddl.auto">update</property> <!-- 顯示Hibernate持久化操作所產生的SQL --> <property name="show_sql">true</property> <!-- 將SQL指令碼進行格式化後再輸出 --> <property name="hibernate.format_sql">true</property> <!-- 列出每一個要映射的 類 --><mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/></session-factory></hibernate-configuration>
使用工具類。將已經產生的實體類,映射到資料庫中(產生資料庫表)
假設使用了設定了<propertyname="hbm2ddl.auto">update</property> 那麼就不用寫工具類了。
注意:資料庫須要手動建立。
Hibernate的一個特點,耦合性低,easy單元測試。所以最好建立一個單元測試類。測試一下代碼的連通性。
第五步:寫單元測試類。調試是否成功。也是檢驗代碼的品質
package com.bjpowernode.hibernate;import org.hibernate.Session;import junit.framework.TestCase;public class UserTest extends TestCase {public void testSave1(){Session session=null;try{session=HibernateUtils.getSession();//開啟事務session.beginTransaction();User user=new User();user.setName("張三");user.setPassword("123456"); //事務提交session.getTransaction().commit();}catch(Exception e){e.printStackTrace();//交易回復session.getTransaction().rollback();}finally{ //關閉SessionHibernateUtils.closeSession(session);}}}
通過上面幾個步驟,將Hibernate的架構搭建起來。通過自測的方式逐步開發。Hibernate的核心就是OR的轉換。即編寫hbm對應檔。接下來,我們會在興許解說
ORM進階:Hibernate架構搭建及開發