本篇内容介绍了"冬眠在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