Hibernate
是一個開放源代碼的對象關系映射架構,它對JDBC進行了非常輕量級的對象封裝,它将POJO與資料庫表建立映射關系,是一個全自動的orm架構,hibernate可以自動生成SQL語句,自動執行,使得Java程式員可以随心所欲的使用對象程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的用戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。
Hibernate的API一共有6個,分别為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過這些接口,可以對持久化對象進行存取、事務控制。
Session
Session接口負責執行被持久化對象的CRUD操作(CRUD的任務是完成與資料庫的交流,包含了很多常見的SQL語句)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應用中的HttpSession。這裡當使用session這個術語時,其實指的是Hibernate中的session,而以後會将HttpSession對象稱為使用者session。
SessionFactory
SessionFactory接口
負責初始化Hibernate。它充當資料存儲源的代理,并負責建立Session對象。這裡用到了工廠模式。需要注意的是SessionFactory并不是輕量級的,因為一般情況下,一個項目通常隻需要一個SessionFactory就夠,當需要操作多個資料庫時,可以為每個資料庫指定一個SessionFactory。
Transaction
Transaction 接口是一個可選的API,可以選擇不使用這個接口,取而代之的是Hibernate 的設計者自己寫的底層事務處理代碼。 Transaction 接口是對實際事務實作的一個抽象,這些實作包括JDBC的事務、JTA 中的UserTransaction、甚至可以是CORBA 事務。之是以這樣設計是能讓開發者能夠使用一個統一事務的操作界面,使得自己的項目可以在不同的環境和容器之間友善地移植。
Query
Query接口讓你友善地對資料庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地資料庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,并最終執行查詢操作。
Criteria
Criteria接口與Query接口非常類似,允許建立并執行面向對象的标準化查詢。值得注意的是Criteria接口也是輕量級的,它不能在Session之外使用。
Configuration
Configuration 類的作用是對Hibernate 進行配置,以及對它進行啟動。在Hibernate 的啟動過程中,Configuration 類的執行個體首先定位映射文檔的位置,讀取這些配置,然後建立一個SessionFactory對象。雖然Configuration 類在整個Hibernate 項目中隻扮演着一個很小的角色,但它是啟動hibernate 時所遇到的第一個對象。
取的時候:
1.是不是送出了 hibernate非自動送出
2.ID号屬于子增長
什麼是 ORM?
ORM 表示 Object-Relational Mapping (ORM),是一個友善在關系資料庫和類似于 Java, C# 等面向對象的程式設計語言中轉換資料的技術。一個 ORM 系統相比于普通的 JDBC 有以下的優點。