1.一个简单的例子,根据用户名查询用户信息:
static void query(String name) {
Session session = HibernateUtil.getSession();
String queryString = "from User as user where user.id<?";
Query query = session.createQuery(queryString);
query.setString(0, name);
List<User> list = query.list();
for (User user : list) {
System.out.println(user);
}
}
说明:HQL语句支持多态,举个例子:“from Object” 查询的整个数据库中的所有记录,因为Object是所有类的父类。
2.HQL的命名参数和Query接口的分页查询
如果HQL中的占位符‘?’太多,会导致程序难以编写,这时就可以使用“命名参数”:
static void query2(String name,String password) {
Session session = HibernateUtil.getSession();
String queryString = "from User as user where user.name=:name and
user.password=:password";
Query query = session.createQuery(queryString);
query.setString("name", name);
query.setString("password", password);
List<User> list = query.list();
for (User user : list) {
System.out.println(user);
}
}
使用Query实现分页很容易:
query.setFirstResult(firstResult) 和 query.setMaxResults(maxResults)
查询的结果是从firstResult到firstResult+maxResults-1
3.使用Criteria实现更加面向对象的条件查询:
static void query(String name) {
Session session = HibernateUtil.getSession();
Criteria cri = session.createCriteria(User.class);
cri.add(Restrictions.eq("name", name)); // 添加约束条件
List<User> list = cri.list();
for (User user : list) {
System.out.println(user);
}
}
使用Criteria实现分页和Query基本上是一样的
说明:使用Criteria进行查询,完全不用涉及SQL或者是HQL,如果你对他们不感兴趣,使用Criteria是一个非常不错的选择。Restrictions中有大量的static方法,能够添加各种查询条件。
分享到:
相关推荐
Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询
本文旨在为读者呈现不同的方式查询方式:HQL方式的查询、SQL原生态SQL方式的查询、以及Criteria方式的查询,拓展查询的不同实现思路,开阔视野、并涵盖了部分的Hibernate增删改的基本操作。
但是mybatis肯定处理不了那么复杂的查询条件,条件与或非就够它折腾了。 条件必须可以自动生成,再网上找了相关资料,一种是领域驱动设计中的规约Criteria 一种是hibernate中的criteria。还有apache的也有。 我...
Hibernate-Criteria_模糊查询
Hibernate-Criteria 模糊查询
Criteria查询教程ppt课件内容详解
Criteria查询将数据查询条件封装成为一个对象,可以堪称是传统SQL的对象化表示。
Hibernat 使用Criteria查询多对多关系(SET集合)条件
Criteria标准化对象查询小例子,内有配套的SQL表语句和使用说明
JPA 动态查询 Criteria JPQL 语法详解 Java Persistence Query Language
1、掌握Hibernate框架应用项目 2、学习HQL参数查询和Criteria查询 3、比较HQL和Criteria的不同 建立web项目,通过页面查询构造动态查询语句,struts2和hibernate框架整合。
09 Criteria查询方式
Hibernate中Criteria的完整用法
Hibernate条件查询Criteria.docHibernate条件查询Criteria.doc
这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友
criteria的相关知识及其介绍,便于java编程中使用criteria进行相关操作。
NULL 博文链接:https://beisicao.iteye.com/blog/955674
hibernate模糊查询类Criteria的使用