成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡述Hibernate在HQL中查詢實例

開發 后端
Hibernate查詢包括支持字符串方式參數傳遞查詢、傳遞參數查詢、支持多參數傳遞、調用數據庫里面的函數、直接支持sql查詢、進行導航查詢、分頁查詢。

我們學習Hibernate查詢是知道HQL支持條件查詢,分為好多方面,這里我們就具體Hibernate查詢用實例來加以說明,希望對讀者的學習帶來幫助。

1、支持字符串方式參數傳遞查詢:

例子:

  1. List students = session.createQuery("select s.id,s.name from Student s where s.name like '%1' ").list();  
  2.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  3.                 Object[] o = (Object[])iter.next();  
  4.                 System.out.println(o[0]+","+o[1]);  
  5.             } 

由于,涉及到多個屬性查詢,所以返回的是Object數組類型。

2、支持類似于PrepareStatement方式的?傳遞參數查詢

例子:

  1. List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ")  
  2.                                                 .setParameter("goodname", "%1%").list();  
  3.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  4.                Object[] o = (Object[])iter.next();  
  5.                System.out.println(o[0]+","+o[1]);  
  6.            } 

要設置參數從0開始,見第2行。

3、去變量方式參數傳遞

例子:

  1. List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ")  
  2.                                                 .setParameter("goodname", "%1%").list();  
  3.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  4.                Object[] o = (Object[])iter.next();  
  5.                 System.out.println(o[0]+","+o[1]);  
  6.            } 

這個跟2中的相似,只是多了參數可以歸為一類。

4、支持多參數傳遞

例子:

  1. List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)")  
  2.             .setParameterList("myids", new Object[]{1, 2, 3, 4, 5,32,13,14})  
  3.                 .list();  
  4.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  5.                 Object[] o = (Object[])iter.next();  
  6.                 System.out.println(o[0]+","+o[1]);  
  7.             } 

注意調用方法是setParameterList。

5、調用數據庫里面的函數

例子:

  1. List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")  
  2.            .setParameter(0, "2008-10")  
  3.                 .list();  
  4.            for (Iterator iter=students.iterator(); iter.hasNext();) {  
  5.                 Object[] o = (Object[])iter.next();  
  6.                System.out.println(o[0]+","+o[1]);  
  7.            } 

數據庫函數date_format。

6、直接支持sql查詢

例子:

  1. List students = session.createSQLQuery("select *from t_student").list();  
  2.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  3.                Object[] o = (Object[])iter.next();  
  4.                 System.out.println(o[0]+","+o[1]);  
  5.            } 

只需要調用session里面的createSQLQuery方法即可。

7、進行導航查詢

例子:

  1. List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();  
  2.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  3.                String s = (String)iter.next();  
  4.                 System.out.println(s);  
  5.             } 

這種查詢很方便。

8、分頁查詢

例子:

  1. List students = session.createQuery("from Student").setFirstResult(0).setMaxResults(3).list();  
  2.             for (Iterator iter=students.iterator(); iter.hasNext();) {  
  3.                 Student student = (Student)iter.next();  
  4.                 System.out.println(student.getName());  
  5.             } 

這是很簡單的分頁查詢,分頁查詢實現比這個復雜多了,分頁查詢采用的相當于數據庫里面的 limit ,來限制一次查詢顯示的條數。

注:還有一些其他就不一一列舉了,Hibernate查詢在Hibernate的使用中HQL查詢語言如果用得好,會給工作帶來比較高的效率,比較重要,而且還有一個查詢效率的問題,這涉及到緩存等方面,以后會更新這方面的文章。

【編輯推薦】

  1. 簡述Hibernate中加載并存儲對象
  2. Hibernate傳播性持久化攻略
  3. 深入了解Hibernate自動狀態檢測
  4. 教你如何在Hibernate中實例化集合和代理
  5. Hinerbate單端關聯代理頗析
責任編輯:仲衡 來源: blogjava
相關推薦

2009-06-18 09:14:08

Hibernate H

2009-09-23 18:05:48

2009-09-23 09:16:25

Hibernate復合

2009-09-24 10:35:10

Hibernate查詢

2009-06-29 18:26:46

HibernateHQL查詢

2009-06-12 15:32:01

Hibernate H

2009-09-24 10:15:37

Hibernate查詢

2009-09-22 08:39:59

Hibernate F

2009-06-26 16:09:21

Hibernate查詢HQL

2014-05-12 10:37:41

2009-09-29 16:41:58

Hibernate S

2009-09-24 11:17:32

Hibernate查詢

2009-09-27 14:56:22

Hibernate H

2009-06-30 16:55:19

2009-09-25 12:31:13

Hibernate映射

2009-09-29 17:22:30

Hibernate S

2009-09-28 13:45:59

Hibernate歷史

2009-09-29 10:37:29

Hibernate持久

2009-09-29 15:58:22

Hibernate映射

2011-03-24 11:37:41

Hibernate
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人久久18免费 | 一区二区三区欧美大片 | 久久精品成人 | 亚洲人成人一区二区在线观看 | 日韩精品免费在线观看 | 亚洲精彩视频在线观看 | 久久久精 | 亚洲激情网站 | 久久一热| 国产欧美一区二区三区久久人妖 | 精品中文字幕一区二区 | 精品一二三区 | 国产高清在线 | 你懂的在线视频播放 | 久久久久www | 97福利在线| 精品国产乱码久久久久久丨区2区 | 成人3d动漫一区二区三区91 | 精品九九| 91成人小视频 | 欧美日韩综合视频 | 欧美成人精品一区二区三区 | 国产精品美女久久久久久免费 | 一区二区三区亚洲 | 国产精品久久久久久久久久 | 国产农村妇女精品一区 | 日日干天天操 | 日韩中文视频 | 亚洲二区视频 | 国产精品一区二区三区久久久 | 欧美精品成人一区二区三区四区 | 91精品久久久久久久久 | 91免费在线视频 | 四虎精品在线 | 毛片区| 国产区第一页 | 精品一区二区三区不卡 | 欧洲视频一区二区 | 久久综合一区二区三区 | 国产目拍亚洲精品99久久精品 | 国产精品美女久久久久久免费 |