网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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

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

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名网站空间、营销软件、网站建设、肇庆网站维护、网站推广。

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

例子:

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数组类型。

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

例子:

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

要设置参数从0开始,见第2行。

3、去变量方式参数传递

例子:

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

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中查询的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文题目:Hibernate在HQL中查询的方法有哪些
标题来源:http://bjjierui.cn/article/jioiij.html

其他资讯