**技術分析之hql的查詢方式概述**
1. hql的介紹
* hql(hibernate query language) 是物件導向的查詢語言, 它和 sql 查詢語言有些相似
* 在 hibernate 提供的各種檢索方式中, hql 是使用最廣的一種檢索方式
2. hql與sql的關係
* hql 查詢語句是物件導向的,hibernate負責解析hql查詢語句, 然後根據物件-關係對映檔案中的對映資訊, 把 hql 查詢語句翻譯成相應的 sql 語句.
* hql 查詢語句中的主體是域模型中的類及類的屬性
* sql 查詢語句是與關聯式資料庫繫結在一起的. sql查詢語句中的主體是資料庫表及表的字段
----------
**技術分析之hql的查詢演示**
1. hql基本的查詢格式
* 支援方法鏈的程式設計,即直接呼叫list()方法
* 簡單的**如下
* session.createquery("from customer").list();
2. 使用別名的方式
* 可以使用別名的方式
* session.createquery("from customer c").list();
* session.createquery("select c from customer c").list();
3. 排序查詢
* 排序查詢和sql語句中的排序的語法是一樣的
* 公升序
* session.createquery("from customer order by cust_id").list();
* 降序
* session.createquery("from customer order by cust_id desc").list();
4. 分頁查詢
* hibernate框架提供了分頁的方法,咱們可以呼叫方法來完成分頁
* 兩個方法如下
* setfirstresult(a)
-- 從哪條記錄開始,如果查詢是從第一條開啟,值是0
* setmaxresults(b)
-- 每頁查詢的記錄條數
* 演示**如下
* listlist = session.createquery("from linkman").setfirstresult(0).setmaxresults().list();
5. 帶條件的查詢
* setparameter("?號的位置,預設從0開始","引數的值"); 不用考慮引數的具體型別
* 按位置繫結引數的條件查詢(指定下標值,預設從0開始)
* 按名稱繫結引數的條件查詢(hql語句中的 ? 號換成 :名稱 的方式)
* 例如**如下
query query = session.createquery("from linkman where lkm_name like ? order by lkm_id desc");
query.setfirstresult(0).setmaxresults(3);
query.setparameter(0, "%熊%");
listlist = query.list();
for (linkman linkman : list)
* 如果查詢兩個字段,也可以把這兩個字段封裝到物件中
* 先在持久化類中提供對應欄位的構造方法
* 使用下面這種hql語句的方式
listlist = session.createquery("select new customer(c.cust_name,c.cust_level) from customer c").list();
for (customer customer : list)
----------
**技術分析之聚合函式查詢**
1. 獲取總的記錄數
session session = hibernateutils.getcurrentsession();
transaction tr = session.begintransaction();
listlist = session.createquery("select count(c) from customer c").list();
long count = list.get(0).longvalue();
system.out.println(count);
tr.commit();
2. 獲取某一列資料的和
session session = hibernateutils.getcurrentsession();
transaction tr = session.begintransaction();
listlist = session.createquery("select sum(c.cust_id) from customer c").list();
long count = list.get(0).longvalue();
system.out.println(count);
tr.commit();
----------
編寫簡單的hql命令 hql 的執行方式
注意指令碼放的目錄和許可權 hive e sql語句 hive f file sql.txt crontab e 裡面的指令碼命令要寫絕對命令 crontab e 編輯 crontab l 檢視 crontab r 刪除 hql指令碼編寫的注意點 1 寫好sh指令碼 然後利用crontab e 進行...
HQL多表查詢
物件之間總是有各種各樣的關係,關聯關係是類之間最常見的關係。多表查詢是hql中的強大功能之一,包括內連線 左連線和右連線等。在資料庫中用到了3個表 student 學生表 course 課程表 和sc 選課表 在現實模型中,乙個學生可以選擇多門課程,乙個課程可以被多個學生選擇,student和cou...
HQL查詢條件
hql運算子 qbc運算子 含義 restrictions.eq 等於equal restrictions.ne 不等於not equal restrictions.gt 大於greater than restrictions.ge 大於等於greater than or equal restric...