HQL 簡單的幾種帶條件查詢方法_hibernate

來源:互聯網
上載者:User

條件查詢 
 * 可以採用拼字串的方式傳遞參數
 * 可以採用 。來傳遞參數(索引從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[]{1, 2, 3, 4, 5})
               .list();

 

第六種:在hql中可以使用資料庫的函數,如:date_format

//查詢2010年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 SimpleDateFormat sdf = new SimpleDateFormat("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(

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.