freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

hibernate4版本(參考版)

2025-01-22 08:07本頁面
  

【正文】 專注 IT 服務中國 HQL 檢索方式 ? 在映射文件中定義命名查詢語句 ? Hibernate 允許在映射文件中定義字符串形式的查詢語句 . ? query 元素用于定義一個 HQL 查詢語句 , 它和 class 元素并列 . ? 在程序中通過 Session 的 getNamedQuery() 方法獲取查詢語句對應的 Query 對象 . Query query=(testNameQuery)。//當前頁 int pageSize=3。 ? OID 檢索方式 : 主要指用 Session的 get()和 load()方法加載某條記錄對應的對象。 ? Hibernate 提供了以下幾種檢索對象的方式 ? 導航對象圖檢索方式 : 利用類與類之間的關系來檢索對象。 set元素的兩個子元素: key 和 manytomany 都必須指定 column 屬性 ,其中, key 和 manytomany 分別指定本持久化類和關聯(lián)類在連接表中的外鍵列名,因此兩邊的 key 與 manytomany 的 column屬性交叉相同 。為 manytoone元素增加 unique=“true” 屬性來表示為 11關聯(lián) ? 另一端需要使用 onetoone元素,該元素使用 propertyref 屬性指定使用被關聯(lián)實體主鍵以外的字段作為關聯(lián)字段 專注 IT 服務中國 基于主鍵映射的 11 ? 基于主鍵的映射策略 :指一端的主鍵生成器使用 foreign 策略 ,表明根據(jù) ”對方 ”的主鍵來生成自己的主鍵,自己并不能獨立生成主鍵 . param 子元素指定使用當前持久化類的哪個屬性作為 “對方 ” ? 采用 foreign主鍵生成器策略的一端增加 onetoone 元素映射關聯(lián)屬性,其onetoone屬性還應增加 constrained=“true” 屬性;另一端增加 onetoone元素映射關聯(lián)屬性。 ? 在 1N 關系中,若將 1 方設為主控方 ? 會額外多出 update 語句 。 ? 在定義集合屬性時 , 通常把它初始化為集合實現(xiàn)類的一個實例 . 這樣可以提高程序的健壯性 , 避免應用程序訪問取值為 null 的集合的方法拋出 NullPointerException 專注 IT 服務中國 雙向 1n ? Hibernate 使用 set 元素來映射 set 類型的屬性 專注 IT 服務中國 set ? set 元素來映射 持久化類的 set 類型的屬性 – name: 設定待映射的持久化類的屬性的 專注 IT 服務中國 key ? key 元素 設定與所關聯(lián)的持久化類對應的表的外鍵 – column: 指定關聯(lián)表的外鍵名 專注 IT 服務中國 onetomany ? onetomany 元素 設定集合屬性中所關聯(lián)的持久化類 – class: 指定關聯(lián)的持久化類的類名 專注 IT 服務中國 專注 IT 服務中國 set 元素的 inverse 屬性 ? 在 hibernate中通過對 inverse 屬性的來決定是由雙向關聯(lián)的哪一方來維護表和表之間的關系 . inverse = false 的為主動方, inverse = true 的為被動方 , 由主動方負責維護關聯(lián)關系 ? 在沒有設置 inverse=true 的情況下,父子兩邊都維護父子 關系 . ? 在 1n 關系中,將 n 方設為主控方將有助于性能改善 (如果要國家元首記住全國人民的名字,不是太可能,但要讓全國人民知道國家元首,就容易的多 ) ? inverse=false的 side( side其實是指 inverse= false所位于的 class元素)端有責任維護關系,而 inverse= true端無須維護這些關系。 字符串可以聲明為 或 ? 實際上在 Java 應用程序中處理長度超過 255 的字符串 , 使用 比 更方便 專注 IT 服務中國 映射組成關系 ? 建立域模型和關系數(shù)據(jù)模型有著不同的出發(fā)點 : ? 域模型 : 由程序代碼組成 , 通過細化持久化類的的粒度可提高代碼的可重用性 , 簡化編程 ? 關系數(shù)據(jù)模型 :在沒有數(shù)據(jù)冗余的情況下 , 應該盡可能減少表的數(shù)目 , 簡化表之間的參照關系 , 以便提高數(shù)據(jù)的訪問速度 專注 IT 服務中國 映射組成關系 ? Hibernate 把持久化類的屬性分為兩種 : ? 值 (value)類型 : 沒有 OID, 不能被單獨持久化 , 生命周期依賴于所屬的持久化類的對象的生命周期 ? 實體 (entity)類型 : 有 OID, 可以被單獨持久化 , 有獨立的生命周期 ? 顯然無法直接用 property 映射 pay 屬性 ? Hibernate 使用 ponent 元素來映射組成關系 , 該元素表名 pay 屬性是 Worker 類一個組成部分 , 在 Hibernate 中稱之為 組件 專注 IT 服務中國 ponent ? ponent 元素來映射組成關系 – class:設定組成關系屬性的類型 , 此處表明 pay 屬性為 Pay 類型 ? parent 元素 指定組件屬性所屬的整體類 – name: 整體類在組件類中的屬性名 專注 IT 服務中國 映射一對多關聯(lián)關系 專注 IT 服務中國 一對多關聯(lián)關系 ? 在領域模型中 , 類與類之間最普遍的關系就是關聯(lián)關系 . ? 在 UML 中 , 關聯(lián)是有方向的 . ? 以 Customer 和 Order 為例: 一個用戶能發(fā)出多個訂單 , 而一個訂單只能屬于一個客戶 . 從 Order 到 Customer 的關聯(lián)是多對一關聯(lián) 。 如果字段為 TIME 類型 , 那么 Hibernate 映射類型為 time。39。 專注 IT 服務中國 class ? class 元素用于指定類和表的映射 – name:指定該持久化類映射的持久化類的類名 – table:指定該持久化類映射的表名 , Hibernate 默認以持久化類的類名作為表名 – dynamicinsert: 若設置為 true, 表示當保存一個對象時 , 會動態(tài)生成 insert 語句 , insert 語句中僅包含所有取值不為 null 的字段 . 默認值為 false – dynamicupdate: 若設置為 true, 表示當更新一個對象時 , 會動態(tài)生成 update 語句 , update 語句中僅包含所有取值需要更新的字段 . 默認值為 false – selectbeforeupdate:設置 Hibernate 在更新某個持久化對象之前是否需要先執(zhí)行一次查詢 . 默認值為 false – batchsize:指定根據(jù) OID 來抓取實例時每批抓取的實例數(shù) . – lazy: 指定是否使用延遲加載 . (僅對 load有效,對 get,HQL, QBC無效 ) – mutable: 若設置為 true, 等價于所有的 property 元素的 update 屬性為 false, 表示整個實例不能被更新 . 默認為 true. 專注 IT 服務中國 映射對象標識符 ? Hibernate 使用對象標識符 (OID) 來建立內存中的對象和數(shù)據(jù)庫表中記錄的對應關系 . 對象的 OID 和數(shù)據(jù)表的主鍵對應. Hibernate 通過標識符生成器 來為主鍵賦值 ? Hibernate 推薦在數(shù)據(jù)表中使用代理主鍵 , 即不具備業(yè)務含義的字段 . 代理主鍵通常為整數(shù)類型 , 因為整數(shù)類型比字符串類型要節(jié)省更多的數(shù)據(jù)庫空間 . ? 在對象 關系映射文件中 , id 元素用來設置對象標識符 . generator 子元素用來設定標識符生成器 . ? Hibernate 提供了標識符生成器接口 : IdentifierGenerator, 并提供了各種內置實現(xiàn) 專注 IT 服務中國 id ? id:設定持久化類的 OID 和表的主鍵的映射 – name: 標識持久化類 OID 的屬性名 – column: 設置標識屬性所映射的數(shù)據(jù)表的列名 (主鍵字段的名字 ). – unsavedvalue:若設定了該屬性 , Hibernate 會通過比較持久化類的 OID 值和該屬性值來區(qū)分當前持久化類的對象是否為臨時對象 – type:指定 Hibernate 映射類型 . Hibernate 映射類型是 Java 類型與 SQL 類型的橋梁 . 如果沒有為某個屬性顯式設定映射類型 , Hibernate 會運用反射機制先識別出持久化類的特定屬性的 Java 類型 , 然后自動使用與之對應的默認的 Hibernate 映射類型 – Java的基本數(shù)據(jù)類型和包裝類型對應相同的 Hibernate 映射類型 . 基本數(shù)據(jù)類型無法表達 null, 所以對于持久化類的 OID 推薦使用包裝類型 專注 IT 服務中國 generator ? generator:設定持久化類設定標識符生成器 – class: 指定使用的標識符生成器全限定類名或其縮寫名 專注 IT 服務中國 主鍵生成策略 generator ? Hibernate提供的內置標識符生成器 : 專注 IT 服務中國 increment 標識符生成器 ? increment 標識符生成器 由 Hibernate 以遞增的方式為代理主鍵賦值 ? Hibernate 會先讀取 NEWS 表中的主鍵的最大值 , 而接下來向 NEWS 表中插入記錄時 , 就在 max(id) 的基礎上遞增 , 增量為 1. ? 適用范圍 : ? 由于 increment 生成標識符機制不依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此它適合所有的數(shù)據(jù)庫系統(tǒng) ? 適用于只有單個 Hibernate 應用進程 訪問同一個數(shù)據(jù)庫的場合 , 在集群環(huán)境下不推薦使用它 ? OID 必須為 long, int 或 short 類型 , 如果把 OID 定義為 byte 類型 , 在運行時會拋出異常 專注 IT 服務中國 identity 標識符生成器 ? identity 標識符生成器由底層數(shù)據(jù)庫來負責生成標識符 , 它要求底層數(shù)據(jù)庫把主鍵定義為自動增長字段類型 ? 適用范圍 : ? 由于 identity 生成標識符的機制依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此 , 要求底層數(shù)據(jù)庫系統(tǒng)必須支持自動增長字段類型 . 支持自動增長字段類型的數(shù)據(jù)庫包括 : DB2, Mysql, MSSQLServer, Sybase 等 ? OID 必須為 long, int 或 short 類型 , 如果把 OID 定義為 byte 類型 , 在運行時會拋出異常 專注 IT 服務中國 sequence 標識符生成器 ? sequence 標識符生成器利用底層數(shù)據(jù)庫提供的序列來生成標識符 . ? Hibernate 在持久化一個 對象時 , 先從底層數(shù)據(jù)庫的 序列中獲得一個唯一的標識號 , 再把它作為主鍵值 . ? 適用范圍 : ? 由于 sequence 生成標識符的機制依賴于底層數(shù)據(jù)庫系統(tǒng)的序列 , 因此 , 要求底層數(shù)據(jù)庫系統(tǒng)必須支持序列 . 支持序列的數(shù)據(jù)庫包括 : DB2, Oracle 等 ? OID 必須為 long, int 或 short 類型 , 如果把 OID 定義為 byte 類型 , 在運行時會拋出異常 專注 IT 服務中國 hilo 標識符生成器 ? hilo 標識符生成器由 Hibernate 按照一種 high/low 算法 *生成標識符 , 它從數(shù)據(jù)庫的特定表的字段中獲取 high 值 . ? Hibernate 在持久化一個 對象時 , 由 Hibernate 負責生成主鍵值 . hilo 標識符生成器在生成標識符時 , 需要讀取并修改 HI_TABLE 表中的 NEXT_VALUE 值 . ? 適用范圍 : ? 由于 hilo 生存標識符機制不依賴于底層數(shù)據(jù)庫系統(tǒng) , 因此它適合所有的數(shù)據(jù)庫系統(tǒng) ? OID 必須為 long, int 或 short 類型 , 如果把 OID 定義為 byte 類型 , 在運行時會拋出異常 專注 IT 服務中國 native 標識符生成器 ? native 標識符生成器依據(jù)底層數(shù)據(jù)庫對自動生成標識符的支持能力 , 來選擇使用 identity, sequence 或 hilo 標識符生成器 . ? 適用范圍 : ? 由于 native 能根據(jù)底層數(shù)據(jù)庫系統(tǒng)的類型 , 自動選擇合適的標識
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1