Hibernate原理模擬 – 什么是O/RMapping以及為什么要有O/RMapping 常見的O/R框架(了解) hibernate基礎配置(重點) ID生成策略(重點掌握AUTO) Hibernate核心開發接口介紹(重點) 對象的三種狀態(了解) 關系映射(重點) Hibernate查詢(HQL) 在Struts基礎上繼續完善BBS2009 性能優化(重點)
上次我們一起學習了用Criteria進行相關的操作,但由于Criteria并不是Hibernate官方推薦的查詢方式,我們也并不多用。現在我們來看一下官方推薦的HQL,一起學習一下它的強大。說是HQL,也就是Hibernate查詢語句,和SQL有什么區別呢?一個字母的區別,哈哈。
批量更新是指在一個事務中更新大批量數據,批量刪除是指在一個事務中刪除大批量數據。以下程序直接通過Hibernate API批量更新CUSTOMERS表中年齡大于零的所有記錄的AGE字段。
當我們用HQL進行子查詢的時候,如select * from Tree where pid in (select id from Tree,此時HIBERANTE就會報錯,說什么*號錯誤之類的。但如果將*改為Tree類里的所有子段時就不會有問題了。就會像平時一樣第一行數據返回一個Object[],然后你再根據Tree類里字段對Object[]數組里的值進行轉換。這樣一來比較麻煩。今天發現如果我SQL來查有一個方法可以返回一個對象的。
Hibernate入門OR映射技術通過Hibernate API操縱數據庫檢索策略和方式數據庫事務、并發、緩存與性能優化高級配置Hibernate入門案例Hibernate關系數據庫Customer類BusinessService類對象關系型映射Hibernate API Hibernate配置文件Customers表Hibernate入門創建配置文件。
QBC(Query By Criteria)API提供了檢索對象的另一種方式,它主要有Criteria接口、Criterion接口和Expresson類組成,它支持在運行時動態生成查詢語句。Hibernate中共提供了三種檢索方式:HQL(HibernateQueryLanguage)、QBC、QBE(QueryByExample)。
hibernate實踐一(myeclipse下):將對象信息保存到數據庫中
Hibernate實踐一:在MyEclipse的DatabaseExplorer透視圖中連接Oracle數據庫切換到DatabaseExplorer透視圖單擊工具欄上的按鈕,可以顯示多個透視圖的切換。
hibernate實踐八:測試DAO內的各種方法(網上購物).
Hibernate ORM 操作流程 (oracle)
@contente jb3注解的API定義在javax.persistence.*包里面。
新建一個名為HibernateDemo的java工程,并導入Hibernate的jar包,特別要注意除了導入lib下的jar包還需導入hibernate3.jar核心jar包。 由于涉及數據庫操作,還應導入mysql驅動包。
Hibernate簡介Hibernate是一個JDO工具。它的工作原理是通過文件(一般有兩種:xml文件和properties文件)把值對象和數據庫表之間建立起一個映射關系。這樣,我們只需要通過操作這些值對象和Hibernate提供的一些基本類,就可以達到使用數據庫的目的。例如,使用Hibernate的查詢,可以直接返回包含某個值對象的列表(List),而不必向傳統的JDBC訪問方式一樣把結果集的數據逐個裝載到一個值對象中,為編碼工作節約了大量的時間。
1 HelloWorld 5 2 Hibernate原理模擬 - 什么是O/R Mapping以及為什么要有O/R Mapping 5 3 常見的0/R框架(了解) 5 4 hibernate基礎配置(重點) 5 5 ID生成策略(重點 AUTO) 5 6 Hibernate核心開發接口介紹(重點) 5 7 對象的三種狀態(了解) 5 8 關系映射(重點) 5 9 Hibernate査詢(HQL) 5 10 在Struts基礎上繼續完善BBS200 5 11 性能優化(重點) 5
Hibernate3 注解
最近正在拜讀Hibernate之父大作 Java Persistence with Hibernate ,頗有收獲。在我們熟悉的Hibernate映射文件中也大有乾坤,很多值得我注意的地方。
HIbernate主鍵詳解1.Assigned? Assigned方式由程序生成主鍵值,并且要在save()之前指定否則會拋出異常? 特點:主鍵的生成值完全由用戶決定,與底層數據庫無關。用戶需要維護主鍵值,在調用session.save()之前要指定主鍵值。主鍵由外部程序負責生成,無需Hibernate參與。?
冬眠數據增刪改查增強的JDBC為什么使用HIbernate? *封裝繁瑣的jdbc操作*O-RMapping框架Object-Relation對象關系映射hibernate配置文件。
1.搜索不到符合條件的記錄,get返回一個null,load會拋出一個ObjectNotFountdException2.load返回實體的代理類實例(查看緩存和二級緩存);但get方法則要分情況:●能get方法若在session緩存中找到了該id對應的對象,如果在前一步中被代理過的,其中被load方法使用過或被其它關聯對象延遲加載過,則返回的原來的代理對象;
悲觀鎖:認為在修改數據庫數據的這段時間里存在著也想修改此數據的事務!?樂觀鎖:認為在短暫的時間里不會有事務來修改此數據庫的數據!鎖(locking)業務邏輯的實現過程中,往往需要保證數據訪問的排他性。如在金融系統的日終結算處理中,我們希望針對某個cut-off時間點的數據進行處理,而不希望在結算進行過程中(可能是幾秒種,也可能是幾個小時),數據再發生變化。此時,我們就需要通過一些機制來保證這些數據在某個操作過程中不會被外界修改,這樣的機制,在這里,也就是所謂的“鎖”,即給我們選定的目標數據上鎖,使其無法被其他程序修改。Hibernate支持兩種鎖機制:即通常所說的“悲觀鎖(PessimisticLocking)”和“樂觀鎖(OptimisticLocking)”。