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

站在用戶的角度思考問題,與客戶深入溝通,找到萊西網(wǎng)站設計與萊西網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、主機域名、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋萊西地區(qū)。
1、支持字符串方式參數(shù)傳遞查詢:
例子:
- List students = session.createQuery("select s.id,s.name from Student s where s.name like '%1' ").list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
由于,涉及到多個屬性查詢,所以返回的是Object數(shù)組類型。
2、支持類似于PrepareStatement方式的?傳遞參數(shù)查詢
例子:
- List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ")
- .setParameter("goodname", "%1%").list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
要設置參數(shù)從0開始,見第2行。
3、去變量方式參數(shù)傳遞
例子:
- List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ")
- .setParameter("goodname", "%1%").list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
這個跟2中的相似,只是多了參數(shù)可以歸為一類。
4、支持多參數(shù)傳遞
例子:
- 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,32,13,14})
- .list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
注意調用方法是setParameterList。
5、調用數(shù)據(jù)庫里面的函數(shù)
例子:
- List students = session.createQuery("select s.id, s.name from Student s where date_format(s.createTime, '%Y-%m')=?")
- .setParameter(0, "2008-10")
- .list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
數(shù)據(jù)庫函數(shù)date_format。
6、直接支持sql查詢
例子:
- List students = session.createSQLQuery("select *from t_student").list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Object[] o = (Object[])iter.next();
- System.out.println(o[0]+","+o[1]);
- }
只需要調用session里面的createSQLQuery方法即可。
7、進行導航查詢
例子:
- List students = session.createQuery("select s.name from Student s where s.classes.name like '%1%'").list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- String s = (String)iter.next();
- System.out.println(s);
- }
這種查詢很方便。
8、分頁查詢
例子:
- List students = session.createQuery("from Student").setFirstResult(0).setMaxResults(3).list();
- for (Iterator iter=students.iterator(); iter.hasNext();) {
- Student student = (Student)iter.next();
- System.out.println(student.getName());
- }
這是很簡單的分頁查詢,分頁查詢實現(xiàn)比這個復雜多了,分頁查詢采用的相當于數(shù)據(jù)庫里面的 limit ,來限制一次查詢顯示的條數(shù)。
注:還有一些其他就不一一列舉了,Hibernate查詢在Hibernate的使用中HQL查詢語言如果用得好,會給工作帶來比較高的效率,比較重要,而且還有一個查詢效率的問題,這涉及到緩存等方面,以后會更新這方面的文章。
分享文章:簡述Hibernate在HQL中查詢實例
文章來源:http://m.fisionsoft.com.cn/article/cdiicde.html


咨詢
建站咨詢
