Hibernate在HQL中查询的方法有哪些

技术Hibernate在HQL中查询的方法有哪些本篇内容介绍了“Hibernate在HQL中查询的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧

本篇内容介绍了"冬眠在HQL中查询的方法有哪些"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1、支持字符串方式参数传递查询:

例子:

列出学生=会话。create query(' select。学生的身份证和姓名。哪里?类似“% 1”得名称).list();用于(迭代器=学生。迭代器();ITER。HasNeXt();){对象[]o=(对象[])ITER。next();System.out.println(o[0]',' o[1]);}由于,涉及到多个属性查询,所以返回的是目标数组类型。

2、支持类似于PrepareStatement方式的?传递参数查询

例子:

列出学生=课程。创建查询('选择。id,s . namefromsecurities。名字像:好名字').setParameter('goodname ',' %1% ').list();用于(迭代器=学生。迭代器();ITER。HasNeXt();){对象[]o=(对象[])ITER。next();System.out.println(o[0]',' o[1]);}要设置参数从0开始,见第2行。

3、去变量方式参数传递

例子:

列出学生=会话。create query(' select。学生的身份证和姓名。钠

me 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中的相似,只是多了参数可以归为一类。

4、支持多参数传递

例子:

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、调用数据库里面的函数

例子:

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]);             }

数据库函数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());              }

这是很简单的分页查询,分页查询实现比这个复杂多了,分页查询采用的相当于数据库里面的 limit ,来限制一次查询显示的条数。

“Hibernate在HQL中查询的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/133793.html

(0)

相关推荐

  • C++程序员应聘常见面试题有哪些

    技术C++程序员应聘常见面试题有哪些本篇内容主要讲解“C++程序员应聘常见面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++程序员应聘常见面试题有哪些”吧!试题

    攻略 2021年11月29日
  • redis的sentinel配置文件(redis 的sentinel原理)

    技术Redis中的Sentinel机制怎么用这篇文章将为大家详细讲解有关Redis中的Sentinel机制怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 概述Redis-Se

    攻略 2021年12月15日
  • 英国的英语怎么说,“UK”是王国还是帝国

    技术英国的英语怎么说,“UK”是王国还是帝国UK全程是United Kingdom of Great Britain and Northern Ireland——大不列颠和北爱尔兰联合王国英国的英语怎么说。简称联合王国—

    生活 2021年10月25日
  • furniture可数吗,difficulty可数吗?

    技术furniture可数吗,difficulty可数吗?1. 关于是否用作可数名词和是否用复数形式furniture可数吗: (1)
    表示抽象意义的“困难”,是不可数名词,如:
    Bad
    planning
    wil

    生活 2021年10月21日
  • false函数,函数FALSE是什么意思

    技术false函数,函数FALSE是什么意思=VLOOKUP($C$3:$C$100,1月份!$A$2:$D$70,3,FALSE)是一个数组公式,应按“Shift”+“Ctrl”+“Enter”键,公式将变为{=VLO

    生活 2021年10月28日
  • ar发音,有“ar”的英语单词有哪些

    技术ar发音,有“ar”的英语单词有哪些1、car 汽车2、bar 酒吧3、cartoon 卡通4、park 公园5、hard 努力的6、large 大的7、far 远的8、star 星星9、mark 标记10、farm

    生活 2021年10月21日