Hibernate的定義:
1.就是一個ORMapping的實現,主要的功能就是以對象的形式操作數據庫。
關於ORMapping:對象關係映射(object relational mapping)是爲了解決面向對象和關係數據庫互不匹配的現象的技術。通過描述對象和數據庫之間映射的元數據,來將java程序中的對象自動持久化到關係數據庫中。
ORMapping的優點:1.提高生產率 2.更好的維護性 3.更i好的性能 4.廠商獨立性
一些可選的方案
1.JDBC (成熟流行)(可讀性差,維護和移植困難)
2.Entity Bean (未來的EJB3)(不可移植,依賴性強)
3.JDO (簡單透明)(不成熟)
4.Apache OJB (性能,穩定性不錯) (文檔少)
5. iBATIS (封裝了很多數據庫操作細節)(持久層封裝不夠徹底,相當於個DBHelper)
6.Hibernate (成熟流行,已成爲標準)(不夠透明)
Hibernate的核心接口:Session,Transaction,Query,SessionFactory,Configuration
Hibernate封裝的與數據庫的交互接口:JNDI,JDBC,JTA
Java事務API(JTA;Java Transaction API)和它的同胞Java事務服務(JTS;Java Transaction Service),爲J2EE平臺提供了分佈式事務服務。
JTA事務比JDBC事務更強大。一個JTA事務可以有多個參與者,而一個JDBC事務則被限定在一個單一的數據庫連接。
JNDI(Java Naming and Directory Interface)是SUN公司提供的一種標準的Java命名系統接口,JNDI提供統一的客戶端API,通過不同的訪問提供者接口JNDI SPI的實現,由管理者將JNDI API映射爲特定的命名服務和目錄系統,使得Java應用程序可以和這些命名服務和目錄服務之間進行交互。
JNDI提供了一種統一的方式,可以用在網絡上查找和訪問服務。通過指定一個資源名稱,該名稱對應於數據庫或命名服務中的一個記錄,同時返回數據庫連接建立所必須的信息。
Hibernate的映射配置:
數據庫定義 --> hbm映射 --> POJO類