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)

相关推荐

  • relocating对Elasticsearch集群的影响是什么

    技术relocating对Elasticsearch集群的影响是什么本篇内容主要讲解“relocating对Elasticsearch集群的影响是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面

    攻略 2021年10月25日
  • css中float属性的属性值有哪些(div的float属性)

    技术css3中float属性怎么用这篇文章主要介绍了css3中float属性怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

    攻略 2021年12月19日
  • es6.4.2api

    技术es6.4.2api es6.4.2api这是讲数据库的数据导入到es里 所有用到了mysql!
    1.依赖xml version="1.0" encoding="UTF-8"
    project xml

    礼包 2021年12月15日
  • 一句,你最喜欢的句子是哪一句

    技术一句,你最喜欢的句子是哪一句打开巜毛选》一句,翻开毛主席语录,句句都是美句、金句,都闪耀着万丈光芒。只要你带着问题带着感情去读,并认真领会,将越读越想读,越读越有劲,总觉得心中有一股暖流在全身流动,你将会被那崇尚的思

    生活 2021年10月20日
  • 复利终值,复利终值公式你怎么理解

    技术复利终值,复利终值公式你怎么理解首先我们要明白公式中F=P×(1+i)^n字母代表什么意思。F:终值;P:现值;i:利率;n:年。接下来我们对公式进行拆分:第一年的本利和是P×(1+i)复利终值,这个能简单理解,就不

    生活 2021年10月28日
  • Vue兼容IE9全功能正常使用的解决方法是什么

    技术Vue兼容IE9全功能正常使用的解决方法是什么本篇内容介绍了“Vue兼容IE9全功能正常使用的解决方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情

    攻略 2021年11月11日