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)

相关推荐

  • 多分类任务中不同隐藏层层数对实验结果的影响

    技术多分类任务中不同隐藏层层数对实验结果的影响 多分类任务中不同隐藏层层数对实验结果的影响1 导入实验所需要的包 import torch
    import torch.nn as nn
    import nu

    礼包 2021年11月5日
  • html盒子模型由什么组成(html盒子模型具有哪些内容)

    技术html的盒子模型有哪些本篇内容主要讲解“html的盒子模型有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html的盒子模型有哪些”吧!

    攻略 2021年12月23日
  • C#的ServerSuperIO有什么特点

    技术C#的ServerSuperIO有什么特点这篇文章主要讲解了“C#的ServerSuperIO有什么特点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#的Serve

    攻略 2021年11月26日
  • 逻辑回归吴恩达

    技术逻辑回归吴恩达 逻辑回归_吴恩达线性回归做分类不太理想新增最右边额外的红色点,会改变原来的线性回归的拟合直线从洋红改变到蓝色直线,运用原来的数据标准,分类出现了错误,使得新的拟合直线更糟糕而且分类问

    礼包 2021年11月27日
  • BZOJ从入门到入土

    技术BZOJ从入门到入土 BZOJ从入门到入土[Jsoi2010]连通数:有向图求每一个点到能到达的点的个数的和(包括自己到自己)SCC+bitset+dp
    #includebits/stdc++.h

    礼包 2021年11月29日
  • 别人夸你优秀神回复,别人夸你时怎么回答比较好

    技术别人夸你优秀神回复,别人夸你时怎么回答比较好当别人夸你时,要分辩是表面上的应付还是真心实意的夸奖,有些人当别人面夸你时,并不是真心的,而只是面子工程,显得此人大度,你应该能听出来他语气中的虚假和敷衍别人夸你优秀神回复

    生活 2021年10月21日