▼
條件查詢
* 可以採用拼字串的方式傳遞引數
* 可以採用 ?來傳遞引數(索引從0開始)
* 可以採用 :引數名 來傳遞引數
* 如果傳遞多個引數,可以採用setparamterlist方法
* 在hql中可以使用資料庫的函式,如:date_format
第一種:可以拼字串
list students = session.createquery("select s.id, s.name from student s where s.name like '%1%'").list();
第二種:可以使用?方式傳遞引數
//引數的索引從0開始
//傳遞的引數值,不用單引號引起來
//注意方法鏈程式設計
list students = session.createquery("select s.id, s.name from student s where s.name like ?")
.setparameter(0, "%1%")
.list();
第三種:引數名稱 的方式傳遞引數值
list students = session.createquery("select s.id, s.name from student s where s.name like :myname")
.setparameter("myname", "%1%")
.list();
第四種:引數名稱 的方式傳遞引數值
list students = session.createquery("select s.id, s.name from student s where s.name like :myname and s.id=:myid")
.setparameter("myname", "%1%")
.setparameter("myid", 12)
.list();
第五種:支援in,需要使用setparameterlist進行引數傳遞
list students = session.createquery("select s.id, s.name from student s where s.id in(:myids)")
.setparameterlist("myids", new object)
.list();
第六種:在hql中可以使用資料庫的函式,如:date_format
//查詢2023年2月建立的學生
list students = session.createquery("select s.id, s.name from student s where date_format(s.createtime, '%y-%m')=?")
.setparameter(0, "2010-02")
.list();
第七種:between
******dateformat sdf = new ******dateformat("yyyy-mm-dd hh:mm:ss");
//查詢2010-01-10到2010-02-15建立的學生
list students = session.createquery("select s.id, s.name from student s where s.createtime between ? and ?")
.setparameter(0, sdf.parse("2010-01-10 00:00:00"))
.setparameter(1, sdf.parse("2010-02-15 23:59:59"))
.list();
HQL 簡單的幾種帶條件查詢方法
條件查詢 可以採用拼字串的方式傳遞引數 可以採用 來傳遞引數 索引從0開始 可以採用 引數名 來傳遞引數 如果傳遞多個引數,可以採用setparamterlist方法 在hql中可以使用資料庫的函式,如 date format 第一種 可以拼字串 list students session.crea...
hibernate中帶查詢條件的分頁
所謂分頁,從資料庫中分,則是封裝乙個分頁類。利用分頁物件進行分頁。但,分頁往往帶查詢條件。分頁類的三個重要資料 當前頁碼數 資料庫中的總記錄數 每頁顯示的資料的條數 原理 select from 表名 where 欄位名 like 條件 limit 開始查詢的索引 每頁顯示的資料 帶查詢條件的分頁分...
使用HQL查詢符合條件的前n行語句
在mysql裡輸入 select from mytable order by addtime desc limit 10 這個能查出了前10條資料 靈活變換order by可以查詢最後10條語句 但是在如果編寫hql語句如下 string hql from mytable m order by m....