1.27 【雜記】hibernate的各種查詢方法
1. 使用HQL語句
Query q = session.createQuery("select e from com.sun.demo.Emp e");
2. 使用Load方法(主鍵查詢)
Emp e = (Emp)session.load(Emp.class, 1141);
3. 使用get方法(主鍵查詢)
Emp e = (Emp)session.get(Emp.class, 1141);
4. 引數化查詢(使用?萬用字元,或者命令萬用字元)
Query q = session.createQuery("update Userinfo set ename='AAA' WHERE ename=?");
q.setParameter(0, "SMITH");
Query q = session.createQuery("update Userinfo set ename='AAA' WHERE ename like ?");
q.setParameter(0, "%M%");
Query q = session.createQuery("update Userinfo set ename='AAA' WHERE ename like :lkename");
q.setParameter("lkename", "%L%");
5. 命名查詢
<
<![CDATA[
from com.sun.hibernate.Employer where job = ?
]]>
</query>
Query q = session.getNamedQuery("myquery");
q.setParameter(0, "MANAGER");
6. 屬性查詢
Query q = session.createQuery("select max(sal) from Employer e where sal is not null");
Query q = session.createQuery(
7. 例項化查詢
步驟如下:
1.編寫你的HQL語句
2.建立普通的Java類 -------------------與POJO類不同,它與資料庫沒有任何關係
3.在該java類中你需要建立和查詢結果對應的欄位
4.在該java類中,你需要建立合適的建構函式
5.完善你的HQL語句,使用例項化查詢的方式進行包裝
6.通過list.get(i)獲取的結果就不再是一個數組,而是一個包裝後的物件
例子:
Query q = session.createQuery("SELECT new com.sun.demo.UserDate(ename,SYSDATE) FROM Userinfo");
List list = q.list();
for(int i=0;i<list.size();i++){
UserDate u = (UserDate)list.get(i);
System.out.println(u.getEname());
}
8. 多型查詢
對於pojo來說,java中的這種關係被擴充套件到了資料庫表中
hibernate在查詢一個表的同時,會檢查該表所對應的POJO類有沒有子類,如果有,一起查詢出來
9. 分頁查詢
//查詢第三到五條
q.setFirstResult(3);//從第三條開始
q.setMaxResults(3);//提取三條
10. uniqueResult方法查詢(查詢結果只能是一個欄位)
Query q = session.createQuery("select count(*) from Employer");
Long count = (Long)q.uniqueResult();
11. Criteria查詢(通過面向物件化的設計,將資料查詢條件封裝為一個物件)
Criteria c = session.createCriteria(Employer.class);
c.addOrder(Order.asc("sal")); //按薪水升序查詢
c.setFirstResult(3);
c.setMaxResults(3);
List list = c.list();
for(int i=0;i<list.size();i++){
Employer emp = (Employer)list.get(i);
System.out.println(emp.getEname() + " : " + emp.getSal());
}
相關推薦
1.27 【雜記】hibernate的各種查詢方法
1. 使用HQL語句 Query q = session.createQuery("select e from com.sun.demo.Emp e"); 2. 使用Load方法(主鍵查詢) Emp e = (Emp)session.load(Emp.cl
【SSH】Hibernate中DetachedCriteria設定關聯屬性的查詢條件和獲取關聯屬性結果集的倆個問題!
問題一:Hibernate設定關聯屬性的查詢條件如果我們想要在離線DetachedCriteria中設定物件的關聯屬性物件的非外來鍵屬性的查詢條件,那麼要為關聯屬性設定一個別名!!注意:如果查詢的就是關
MySQL慢查詢【一】 - 開啟慢查詢
long 復制代碼 pan 重啟 技術分享 開啟 select name 變量 一、簡介 開啟慢查詢日誌,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優化數據庫系統的性能。 二、參數說明 slow_query_log
【轉】SQL模糊查詢
使用 模式 正則表達 bcd 一個 長度 排除 lsp [] 在進行數據庫查詢時,有完整查詢和模糊查詢之分。一般模糊查詢語句如下: SELECT 字段 FROM 表 WHERE 某字段 Like 條件 其中關於條件,SQL提供了四種匹
【SQLAlchemy】SQLAlchemy修改查詢字段列名
googl from ng- 需要 修改 == logs span str SQLAlchemy問題記錄 company price quantity Microsoft 100 10 Google 99 5 Google
2017秋-軟件工程第五次作業(1)-【探路者】團隊選題展示
www tar ont 地址 lin 文案 相關 air .html 【探路者】團隊項目名稱:貪吃蛇 2017秋-軟件工程第五次作業(1)-【探路者】團隊選題展示(視頻)鏈接: http://www.iqiyi.com/w_19rvb5njph.html 2017秋-軟件
2017秋-軟件工程第七次作業(1)-【探路者】貪吃蛇阿爾法發布
lai targe html 地址 lan www lin .html href 【探路者】團隊項目阿爾法發布:貪吃蛇 2017秋-軟件工程第七次作業(1)-【探路者】貪吃蛇 阿爾法發布展示(視頻)鏈接: http://www.iqiyi.com/w_19ruzx6xu
2017秋-軟件工程第七次作業(1)-【探路者】貪吃蛇阿爾法發布展示(視頻展示)
軟件工程 lin 使用 .html -1 target 背景音樂 targe 核心 Part One 【探路者】選題展示視頻鏈接: http://www.iqiyi.com/w_19ruzx6xud.html Part Two 【貪吃蛇】阿爾法發布視頻截圖 1視頻的前半部
【轉】Django模糊查詢
mod post bject sea django .get == 豎線 contain def search(request): searchtype = request.POST.get("searchtype") keyword = requ
【雜記】C#中的回車換行符
語言 color 雜記 pan blog == 一行 div 屬性 在 C# 中,我們用字符串 "\r\n" 表示回車換行符。 如: string str = "第一行\r\n第二行"; 但是我們更推薦 Environment.NewLine(名稱空間為 System)
【轉】 UML各種線的含義
應對 隨著 不同 繼承關系 https 時序 struct 時序圖 ise 原文地址:http://blog.csdn.net/jianfpeng241241/article/details/49617449 內容目錄: 從一個示例開始 類之間的關系 時序圖 附錄:
【題解】CQOI2015任務查詢系統
nod node bool ger -- oid 上進 while div 主席樹,操作上面基本上是一樣的。每一個時間節點一棵樹,一個樹上的每個節點代表一個優先級的節點。把開始和結束時間點離散,在每一棵樹上進行修改。註意因為一個時間節點可能會有多個修改,但我們要保證都在
【CCF】權限查詢
個數 hda ron style algo 接下來 系統用戶 ans space 問題描述 授權 (authorization) 是各類業務系統不可缺少的組成部分,系統用戶通過授權機制獲得系統中各個模塊的操作權限。 本題中的授權機制是這樣設計的:每位用戶具有若幹角色,
【轉】hibernate打印SQL及參數
orm comment binder version engine .org inf 相關 bin 在Hibernate的配置文件hibernate.cfg.xml中有3個設置項跟顯示SQL語句相關,他們的值都是boolean值:1、show_sql:是否顯示SQL語句2、
【原創】Hibernate自動生成(2)
成了 OS class 項目重構 alt index AS url 改名 本實戰是博主初次學習Java,分析WCP源碼時,學習HibernateTools部分的實戰,由於初次接觸,難免錯誤,僅供參考,希望批評指正。 開發環境: Eclipse Version: Photo
【OJ2130】K小數查詢
很好 print char line 分塊 con 多少 第一個 () 2130 -- K小數查詢(Solution) 題目大意 : 給你一個長度為 \(N\) 的數列和 \(Q\) 個操作,操作包括:①區間加一個數;②詢問區間內第 \(k\) 小的數。\((n,q\le8
【轉】【MySQL】Mysql模糊查詢like提速優化
app 有一個 使用 set table 存在 src instr 分享圖片 在使用msyql進行模糊查詢的時候,很自然的會用到like語句,通常情況下,在數據量小的時候,不容易看出查詢的效率,但在數據量達到百萬級,千萬級的時候,查詢的效率就很容易顯現出來。這個時候查詢的效
【筆記】Mybatis高階查詢(八)--列舉處理器的使用
在sys_role中有一個欄位enabled,只有2個可選值,0-禁用,1-啟用。在SysRole中使用了Integer enabled來定義,這種情況下必須手動校驗enabled的值是否符合要求,在只有2個值的時候處理比較容易,但當值很多的時候,處理就比較麻煩。這時候就要使用Myb
【筆記】Mybatis高階查詢(七)--儲存過程呼叫
以下例子展示Mybatis儲存過程呼叫,與普通查詢基本一樣,只是在配置對映時要加上statementType=“CALLABLE”,由於儲存過程方式不支援Mybatis的二級快取,所以要加上useCache=“false”。 在儲存過程中使用引數時,除了配置屬性名外,還需要指定
【筆記】Mybatis高階查詢(六)--鑑別器discrimiator的使用
<discrimiator>鑑別器標籤用來處理不同資料型別執行不同操作的。與java的switch語句相似。有以下屬性: column:該屬性用於設定要進行鑑別比較值的列。 javaType:該屬性用於指定列的資料型別,保證使用相同的java