分頁在任何系統中都是非常頭疼的事情,有的數據庫在語法上支持分頁,而有的數據庫則需要使用可滾動游標來實現,并且在不支持可滾動游標的系統上只能使用單向游標逐步接近要取得的數據。 Hibernate提供了一個支持跨系統的分頁機制,這樣無論底層是什么樣的數據庫都能用統一的接口進行分頁操作。比如下面的代碼就是從第500條開始取出100條記錄: Query?q?=?session.createQuery( "
Hibernate 是 Java EE 應用中流行的 JPA 框架,
Hibernate是一種免費的開源的Java語言下的對象關系映射解決方案 Hibernate 有個在 .NET Framework 上的實現版本,稱為 NHibernate
Hibernate緩存
Spring4.0,?Hibernate4.0 BaseDao package com.school.dao; import java.io.Serializable; import java.util.List; import com.school.util.PageList; /** * * @author Fandy * */ public interface BaseDao { /** *
一對一關聯關系(外鍵關聯)我們做這樣的一個假設,公司分配員工住宿,每人分配一個房間。
ORM(Object Relational Mapping) - 是一種為了解決面向對象與關系型數據庫存在的互不匹配的現象的技術。簡單說:ORM是通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關系數據中。本質上就是將數據從一種形式轉換到另外一種形式.2hibernate的作用Hibernate做什么:就是將對象模型(實體類)的東西存入關系模型中,?實體中類對應關系型庫中的一個表.
Hibernate內部封裝了JDBC(Java Database Connector)、JTA(Java Trasaction API)、JNDI(Java Naming and Directory Interface)。我們只要提供JDBC驅動程序就可以通過Hibernate訪問任何數據庫系統。
復合查詢主要是處理,具有關聯關系的兩個實體怎樣進行關聯查詢,比如User實體對象與Addres實體對象具有復合查詢主要是處理,具有關聯關系的兩個實體怎樣進行關聯查詢,比如User實體對象與Addres實體對象具有一對多的關聯關系一對多的關聯關系
QBC(Query By Criteria)API提供了檢索對象的另一種方式,它主要有Criteria接口、Criterion接口和Expresson類組成,它支持在運行時動態生成查詢語句。Hibernate中共提供了三種檢索方式:HQL(HibernateQueryLanguage)、QBC、QBE(QueryByExample)。
一級緩存也叫做session緩存,在一個hibernate session有效,這級緩存的可干預性不強,大多于hibernate自動管理,但它提供清除緩存的方法,這在大批量增加(更新)操作是有效果的,例如,同時增加十萬條記錄,按常規進行,很可能會出現異常,這時可能需要手動清除一級緩存, session.evict 以及 session.clear 。
最近在項目中使用Struts和Hibernate進行開發,有感于Criteria比較好用,在查詢方法設計上可以靈活的根據Criteria的特點來方便地進行查詢條件的組裝。現在對Hibernate的Criteria的用法進行總結:Hibernate設計了CriteriaSpecification作為Criteria的父接口,下面提供了Criteria和DetachedCriteria。Criteria和DetachedCriteria的主要區別在于創建的形式不一樣,Criteria是在線的,所以它是由HibernateSession進行創建的;
實體對象之間一對一的關聯是通過數據庫的外鍵實現的 外鍵的使用有以下兩種方式 主鍵關聯 不需要借助額外字段,直接通過兩個表的主鍵來關聯,兩表中相關聯的記錄要使用相同的主鍵值 唯一外鍵關聯 某個表的外鍵字段關聯到另一個表的主鍵字段上,是多對一關聯的特例
Hibernate POJO Generator這個工具能夠根據數據庫結構生成通過Hibernate操作表格中每個字段所需要的所有Java源代碼(包括:帶注釋的實體類,DAO層,Data Factory,Spring與Hibernate配置文件等)。此外這個生成器還能夠為每一個組件創建所有需要的幫助類和單元測試。 收錄時間:2010-10-22 23:21:17
IBATIS: iBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目,最初側重于密碼軟件的開發,現在是一個基于Java的持久層框架。 iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例,相對Hibernate和Ap
IBATIS: iBATIS一詞來源于“internet”和“abatis”的組合,是一個由Clinton Begin在2001年發起的開放源代碼項目,最初側重于密碼軟件的開發,現在是一個基于Java的持久層框架。 iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO),同時還提供一個利用這個框架開發的JPetStore實例,相對Hibernate和Ap
Hibernate面試題1.Hibernate中find和iterate的區別?find方法和iterator方法的區別(1)iterator首先會獲取符合條件的記錄的id,再跟據id在本地緩存中查找數據,查找不到的再在數據庫中查找,結果再存在緩存中。N+1條SQL語句。(2)find根據生成的SQL語句,直接訪問數據庫,查到的數據存在緩存中,一條SQL語句。
上次我們一起學習了用Criteria進行相關的操作,但由于Criteria并不是Hibernate官方推薦的查詢方式,我們也并不多用。現在我們來看一下官方推薦的HQL,一起學習一下它的強大。說是HQL,也就是Hibernate查詢語句,和SQL有什么區別呢?一個字母的區別,哈哈。