1 |
今天内容
1 hibernate的查詢方式 2 對象導航查詢 3 hql查詢 (1)查詢所有 (2)條件查詢 (3)排序查詢 (4)分頁查詢 (5)投影查詢 (6)聚集函數使用 4 qbc查詢 (1)查詢所有 (2)條件查詢 (3)排序查詢 (4)分頁查詢 (5)統計查詢 (6)離線查詢 5 hql多表查詢 (1)mysql多表查詢回顧 (2)hql多表查詢 - 内連接配接、迫切内連接配接、左外連接配接、迫切左外連接配接、右外連接配接 6 hibernate的檢索政策 (1)概念 - hibernate分成:立即和延遲查詢 - 延遲查詢分成:類級别和關聯級别延遲 (2)具體操作 |
Hibernate查詢方式
1 對象導航查詢 (1)根據id查詢某個客戶,再查詢這個客戶裡面所有的聯系人 2 OID查詢 (1)根據id查詢某一條記錄,傳回對象 3 HQL查詢 (1)Query對象,寫hql語句實作查詢 4 QBC查詢 (1)Criteria對象 5 本地sql查詢 (1)SQLQuery對象,使用普通sql實作查詢 |
對象導航查詢
1 查詢某個客戶裡面所有聯系人過程,使用對象導航實作 2 代碼 ![]() |
OID查詢
1 根據id查詢記錄 (1)調用session裡面的get方法實作 |
HQL查詢
1 hql:hibernate query language,hibernate提供一種查詢語言,hql語言和普通sql很相似,差別:普通sql操作資料庫表和字段,hql操作實體類和屬性 2 常用的hql語句 (1)查詢所有: from實體類名稱 (2)條件查詢: from實體類名稱 where屬性名稱=? (3)排序查詢: from實體類名稱 order by實體類屬性名稱 asc/desc 3 使用hql查詢操作時候,使用Query對象 (1)建立Query對象,寫hql語句 (2)調用query對象裡面的方法得到結果 |
查詢所有
1 查詢所有客戶記錄 (1)建立Query對象,寫hql語句 (2)調用query對象裡面的方法得到結果 2 查詢所有: from實體類名稱 |
條件查詢
1 hql條件查詢語句寫法: (1) from 實體類名稱 where實體類屬性名稱=? and實體類屬性名稱=? from 實體類名稱 where實體類屬性名稱 like ? 2 代碼 |
排序查詢
1 hql排序語句寫法 (1)from實體類名稱 order by實體類屬性名稱 asc/desc |
分頁查詢
1 mysql實作分頁 (1)使用關鍵字 limit實作 2 在hql中實作分頁 (1)在hql操作中,在語句裡面不能寫limit,hibernate的Query對象封裝兩個方法實作分頁操作 |
投影查詢
1 投影查詢:查詢不是所有字段值,而是部分字段的值 2 投影查詢hql語句寫法: (1)select實體類屬性名稱1,實體類屬性名稱2 from實體類名稱 (2)select後面不能寫 *,不支援的 3 具體實作 |
聚集函數使用
1 常用的聚集函數 (1)count、sum、avg、max、min 2 hql聚集函數語句寫法 (1)查詢表記錄數 - select count(*) from實體類名稱 |
QBC查詢
1 使用hql查詢需要寫hql語句實作,但是使用qbc時候,不需要寫語句了,使用方法實作 2 使用qbc時候,操作實體類和屬性 3 使用qbc,使用Criteria對象實作 |
查詢所有
1 建立Criteria對象 2 調用方法得到結果 |
條件查詢
1 沒有語句,使用封裝的方法實作 |
排序查詢
|
分頁查詢
|
統計查詢
|
離線查詢
1 servlet調用service,service調用dao (1)在dao裡面對資料庫crud操作 (2)在dao裡面使用hibernate架構,使用hibernate架構時候,調用session裡面的方法實作功能 |
HQL多表查詢
Mysql裡面多表查詢
1 内連接配接 |
HQL實作多表查詢
Hql多表查詢 (1)内連接配接 (2)左外連接配接 (3)右外連接配接 (4)迫切内連接配接 (5)迫切左外連接配接 |
HQL内連接配接
1 内連接配接查詢hql語句寫法:以客戶和聯系人為例 (1)from Customer c inner join c.setLinkMan 2 示範迫切内連接配接 (1)迫切内連接配接和内連接配接底層實作一樣的 (2)差別:使用内連接配接傳回list中每部分是數組,迫切内連接配接傳回list每部分是對象 (3)hql語句寫法 - from Customer c inner join fetch c.setLinkMan |
HQL左外連接配接
1 左外連接配接hql語句: (1)from Customer c left outer join c.setLinkMan (2)迫切左外連接配接from Customer c left outer join fetch c.setLinkMan 2 左外連接配接傳回list中每部分是數組,迫切左外連接配接傳回list每部分是對象 1 右外連接配接hql語句: (1)from Customer c right outer join c.setLinkMan |
Hibernate檢索政策
檢索政策的概念
1 hibernate檢索政策分為兩類: (1)立即查詢:根據id查詢,調用get方法,一調用get方法馬上發送語句查詢資料庫 2 延遲查詢分成兩類: (1)類級别延遲:根據id查詢傳回實體類對象,調用load方法不會馬上發送語句 (2)關聯級别延遲: - 查詢某個客戶,再查詢這個客戶的所有聯系人,查詢客戶的所有聯系人的過程是否需要延遲,這個過程稱為關聯級别延遲 |
關聯級别延遲操作
1 在映射檔案中進行配置實作 (1)根據客戶得到所有的聯系人,在客戶映射檔案中配置 2 在set标簽上使用屬性 (1)fetch:值select(預設) (2)lazy:值 - true:延遲(預設) - false:不延遲 - extra:極其延遲 |
批量抓取
1 查詢所有的客戶,傳回list集合,周遊list集合,得到每個客戶,得到每個客戶的所有聯系人 (1)上面操作代碼,發送多條sql語句 2 在客戶的映射檔案中,set标簽配置 (1)batch-size值,值越大發送語句越少 |