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)

相关推荐

  • 分析Nodejs的Stream模块

    技术分析Nodejs的Stream模块这篇文章主要讲解了“分析Nodejs的Stream模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析Nodejs的Stream模

    攻略 2021年11月6日
  • 学习CSS布局的理由具体有哪些

    技术学习CSS布局的理由具体有哪些学习CSS布局的理由具体有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。这里向大家描述一下CSS布局的10大理由,虽然

    攻略 2021年11月17日
  • ios15 beta2什么时候出(xsmax ios15建议更新吗)

    技术iOS 9适配中会遇到的问题有哪些这篇文章主要介绍iOS 9适配中会遇到的问题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、NSAppTransportSecurityiOS9让所有

    攻略 2021年12月24日
  • 如何理解SAP HANA Hint

    技术如何理解SAP HANA Hint本篇文章为大家展示了如何理解SAP HANA Hint,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是SAP HANA HintHANA

    攻略 2021年11月23日
  • sqliteselect详解(sqlite字段怎么设置)

    技术SQLite中的SELECT子句如何使用别名小编给大家分享一下SQLite中的SELECT子句如何使用别名,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!SQLite中的SELECT子句使用别名开发者

    攻略 2021年12月18日
  • 如何进行Oracle监听器日志的解析

    技术如何进行Oracle监听器日志的解析如何进行Oracle监听器日志的解析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。///////////////

    攻略 2021年11月30日