Hibernate day01
什么是 Hibernate?
一個框架 一個 Java 領域的持久化框架 一個 ORM 框架;
對象的持久化理解:
?
狹義的理解,“持久化”僅僅指把對象永久保存到數據庫中
廣義的理解,“持久化”包括和數據庫相關的各種操作:
保存:把對象永久保存到數據庫中。
更新:更新數據庫中對象(記錄)的狀態。
刪除:從數據庫中刪除一個對象。
查詢:根據特定的查詢條件,把符合查詢條件的一個或多個對象從數據庫加載到內存中。
加載:根據特定的OID,把一個對象從數據庫加載到內存中。
OID:---
為了在系統中能夠找到所需對象,需要為每一個對象分配一個唯一的標識號。在關系數據庫中稱之為主鍵,而在對象術語中,則叫做對象標識(Object identifier-OID).
ORM:
?
ORM(Object/Relation Mapping): 對象/關系映射
ORM 主要解決對象-關系的映射
-ORM的思想:將關系數據庫中表中的記錄映射成為對象,以對象的形式展現,程序員可以把對數據庫的操作轉化為對對象的操作。
-ORM 采用元數據來描述對象-關系映射細節, 元數據通常采用 XML 格式, 并且存放在專門的對象-關系映射文件中.
?
ORM
?
流行的ORM框架
?
--Hibernate: 非常優秀、成熟的 ORM 框架。
--完成對象的持久化操作 Hibernate 允許開發者采用面向對象的方式來操作關系數據庫。
--消除那些針對特定數據庫廠商的 SQL 代碼
myBatis:
相比 Hibernate 靈活高,運行速度快 開發速度慢,
不支持純粹的面向對象操作,需熟悉sql語 句,并且熟練使用sql語句優化功能 TopLink OJB
?
Hibernate 與 Jdbc 代碼對比
1、下圖session sess由Hibernate 實現
2、connection ?save 由JDBC 實現
?
?
?
1、安裝 hibernate 插件
?
安裝方法說明(hibernatetools-4.1.1.Final): Help --> Install New Software... Click Add... In dialog Add Site dialog, click Archive... Navigate to hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605.zip and click Open Clicking OK in the Add Site dialog will bring you back to the dialog 'Install' Select the Jboss Tools hibernatetools Nightly Build Update Site that has appeared Click Next and then Finish Approve the license Restart eclipse when that is asked?
2、準備 Hibernate 環境
導入 Hibernate 必須的 jar 包:
加入數據庫驅動的 jar 包:
?
?
3、Hibernate開發步驟
?
?
?1. 創建持久化 Java 類
?
--提供一個無參的構造器:使Hibernate可以使用Constructor.newInstance() 來實例化持久化類
--提供一個標識屬性(identifier property): 通常映射為數據庫表的主鍵字段. 如果沒有該屬性,一些功能將不起作用,如:Session.saveOrUpdate()
--為類的持久化類字段聲明訪問方法(get/set): Hibernate對JavaBeans 風格的屬性實行持久化。
--使用非 final 類: 在運行時生成代理是 Hibernate 的一個重要的功能. 如果持久化類沒有實現任何接口, Hibnernate 使用 CGLIB 生成代理.
--如果使用的是 final 類, 則無法生成 CGLIB 代理. 重寫 eqauls 和 hashCode 方法: 如果需要把持久化類的實例放到 Set 中(當需要進行關聯映射時), 則應該重寫這兩個方法
注意1. 創建持久化 Java 類
Hibernate 不要求持久化類繼承任何父類或實現接口,這可以保證代碼不被污染。這就是Hibernate被稱為低侵入式設計的原因
?
2. 創建對象-關系映射文件
?
Hibernate 采用 XML 格式的文件來指定對象和關系數據之間的映射. 在運行時 Hibernate 將根據這個映射文件來生成各種 SQL 語句 映射文件的擴展名為 .hbm.xml
?
?
?3. 創建 Hibernate 配置文件
?
Hibernate 從其配置文件中讀取和數據庫連接的有關信息, 這個文件應該位于應用的 classpath 下.
下邊是控制臺輸出的 SQL 語句
? Helloworld
?
使用 Hibernate 進行數據持久化操作,通常有如下步驟:
編寫持久化類: POJO + 映射文件 獲取 Configuration 對象 獲取 SessionFactory 對象 獲取 Session,打
開事務 用面向對象的方式操作數據庫 關閉事務,關閉 Session
?
總結
以上是生活随笔為你收集整理的Hibernate day01的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java基础小记
- 下一篇: Python——LOL官方商城皮肤信息爬