攻城獅在路上(壹) Hibernate(二)--- 第一個hibernate程式

來源:互聯網
上載者:User

標籤:des   style   blog   class   c   code   

1、直接通過JDBC API持久化實體域對象

  A、java.sql常用介面和類:

    DriverManager:驅動程式管理器,負責建立資料庫連接。

    Connection:代表資料庫連接。

    Statement:負責執行SQL語句。

    PreparedStatement:負責執行SQL語句,具有預定義SQL語句的功能。

    ResultSet:代碼SQL查詢語句的查詢結果集。

 2、常用的ORM中介軟體

  Hibernate\Mybatis\Toplink\Torque\ObjectRelationBridge\FrontierSuite\Castor\FreeFROM\Expresso\JRelationFramework\VBSF\Jgrinder

3、Hibernate 核心介面

  A、Configuration類:用來讀取Hibernate設定檔,並產生SessionFactory對象。在Hibernate 的啟動過程中,Configuration 類的執行個體首先定位映射文檔的位置,讀取這些配置,然後建立一個SessionFactory對象。 
  B、SessionFactory介面:產生Session執行個體工廠。SessionFactory在Hibernate中實際起到了一個緩衝區的作用,它緩衝了Hibernate自動產生的SQL語句和一些其它的映射資料,還緩衝了一些將來有可能重複利用的資料。 
  C、Session介面:用來操作PO。它有get(),load(),save(),update()和delete()等方法用來對PO進行載入,儲存,更新及刪除等操作。它是Hibernate的核心介面。Session 對象是非安全執行緒的,因此在你的設計中,最好是一個線程只建立一個Session對象。 
  D、Query介面:來對PO進行查詢操。它可以從Session的createQuery()方法產生。Query介面讓你方便地對資料庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地資料庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作。

  E、Criteria介面:Criteria介面與Query介面非常類似,它允許你建立並執行物件導向的標準化查詢。
  F、Transaction介面:用來管理Hibernate事務,它主要方法有commit()和rollback(),可以從Session的beginTrancation()方法產生。

  G、Callback 介面:當一些有用的事件發生時――例如持久對象的載入、儲存、刪除時,Callback 介面會通知Hibernate去接收一個通知訊息。Interceptor,Lifecycle,和Validatable介面。

  H、策略介面:當你感覺到Hibernate 的某些功能不足,或者有某些缺陷時,你可以開發一個自己的策略來替換它,而你所要做的僅僅只是繼承它的某個策略介面,然後實現你的新策略就可以了

    主鍵的產生 (IdentifierGenerator 介面)
    本地SQL語言支援 (Dialect 抽象類別)
    緩衝機制 (Cache 和CacheProvider 介面)
    JDBC 串連管理 (ConnectionProvider介面)
    交易管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 介面)
    ORM 策略 (ClassPersister 介面)
    屬性存取原則 (PropertyAccessor 介面)
    代理對象的建立 (ProxyFactory介面)

  I、用於擴充Hibernate的功能的介面:UserType,CompositeUserType

 四、使用hibernate的一般步驟

  A、建立hibernate的設定檔。

  B、建立持久化類。

  C、建立對象-關係對應檔。

  D、通過hibernate API編寫訪問資料庫的代碼。

五、第一個hibernate程式

    A、hibernate.properties:

?
1 2 3 4 5 6 hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.connection.driver_class=com.mysql.jdbc.Driver hibernate.connection.url=jdbc:mysql://localhost:3306/SAMPLEDB hibernate.connection.username=root hibernate.connection.password=root hibernate.show_sql=true

  B、建立持久化類:

  C、建立對象-關係對應檔:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 <?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="mypack.Customer" table="CUSTOMERS">                <id name="id" column="ID" type="long">       <generator class="increment"/>     </id>     <property name="name"  column="NAME"  type="string" not-null="true" />      <property name="email"     column="EMAIL"     type="string" not-null="true" />     <property name="password"  column="PASSWORD"  type="string" not-null="true"/>     <property name="phone"     column="PHONE"     type="int" />     <property name="address"   column="ADDRESS"   type="string" />     <property name="sex"       column="SEX"       type="character"/>      <property name="married"   column="IS_MARRIED"  type="boolean"/>          <property name="description"   column="DESCRIPTION"  type="text"/>          <property name="image"         column="IMAGE"        type="binary"/>     <property name="birthday"      column="BIRTHDAY"     type="date"/>     <property name="registeredTime" column="REGISTERED_TIME"  type="timestamp"/>      </class>   </hibernate-mapping>

  D、通過hibernate API編寫訪問資料庫的代碼:

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.