`
cuisuqiang
  • 浏览: 3962765 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
3feb66c0-2fb6-35ff-968a-5f5ec10ada43
Java研发技术指南
浏览量:3672135
社区版块
存档分类
最新评论

Hibernate的查询 标准(Criteria)查询 分页、单个记录、排序

    博客分类:
  • SSH
阅读更多

分页:

其实标准查询的分页很简单,在Criteria中提供了两个方法,setFirstResult方法和setMaxResults,一个是数据的开始位置0表示第一条记录,一个是返回的记录数。

 

public void searchByPropertys() {
	Session session = this.getSession();
	Criteria crit = session.createCriteria(Conft.class);
	crit.setFirstResult(0);
	crit.setMaxResults(10);
	List<Conft> list = crit.list();
	for(Conft conft : list){
		System.out.println(conft.getId());
	}
}

 

这样会返回数据库前十条记录!

 

返回一条记录:

Criteria接口的uniqueResult方法返回一个Object对象,如果没有查到数据则返回null。

public void searchByPropertys() {
	Session session = this.getSession();
	Criteria crit = session.createCriteria(Conft.class);
	crit.add(Restrictions.eq("id", 2)); // = 
	Conft conft = (Conft)crit.uniqueResult();
	System.out.println(conft.getId());
}

 

如果调用时返回的不是一条记录,会爆出异常!

 

排序:

Oder对象的asc和desc静态方法能满足这个需求

public void searchByPropertys() {
	Session session = this.getSession();
	Criteria crit = session.createCriteria(Conft.class);
	crit.addOrder(Order.desc("id"));
	List<Conft> list = crit.list();
	for(Conft conft : list){
		System.out.println(conft.getId());
	}
}

 

请您到ITEYE看我的原创:http://cuisuqiang.iteye.com

或支持我的个人博客,地址:http://www.javacui.com

 

分享到:
评论
2 楼 cuisuqiang 2012-05-10  
yxb1990 写道
分页还有一个总页数属性,要不你怎么知道分几页,
Long totalCount = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();

需要使用投影查询,查询完之后,还要原来取出来的的project set回去。具体可参考springside, 里面有个通用的分页类,LZ可以去看一下。

非常感谢!
1 楼 yxb1990 2012-05-10  
分页还有一个总页数属性,要不你怎么知道分几页,
Long totalCount = (Long) criteria.setProjection(Projections.rowCount()).uniqueResult();

需要使用投影查询,查询完之后,还要原来取出来的的project set回去。具体可参考springside, 里面有个通用的分页类,LZ可以去看一下。

相关推荐

    Hibernate-Criteria 模糊查询

    通过`Criteria`,可以创建、过滤和排序查询结果,同时支持多种查询条件和逻辑操作。 #### 模糊查询的实现 模糊查询通常用于当查询条件不精确时,例如用户可能只记得某部分信息,或者需要查找包含特定子串的记录。...

    Hibernate中的Criteria的认识

    在给定的部分内容中,首先展示的是如何使用Criteria进行排序查询。例如,如果想获取用户列表并按照年龄升序排列,可以这样实现: ```java Criteria criteria = session.createCriteria(User.class); criteria....

    Hibernate criteria基本操作

    Criteria API 提供了多种方法来构建复杂的查询,包括添加条件、排序、分页以及使用统计函数等。 1. 创建 Criteria 对象: ```java Criteria criteria = session.createCriteria(Guestbook.class); ``` 这个语句...

    Hibernate_Criteria条件查询数据

    5. **分页**:通过`Criteria.setFirstResult()`和`Criteria.setMaxResults()`实现分页查询,前者指定从哪一条开始,后者指定最多返回多少条。 6. **投影**:Criteria查询不仅可以获取完整的对象,还可以进行投影...

    超好用的hibernate查询工具类

    一个超好用的Hibernate查询工具类通常会封装一些常见的查询方法,例如根据ID获取单个对象、根据条件获取对象列表、分页查询等。这样的工具类可以大大减少代码重复,提高代码的可读性和可维护性。 以下是一些可能...

    hibernate公共查询

    6. **排序查询**:`Order`接口可以用来设置查询结果的排序,`Criteria`提供`addOrder()`方法添加排序规则。 7. **事务管理**:为了确保数据的一致性,公共查询类中的每个方法应包裹在`Transaction`中,处理异常时...

    Hibernate官方标准API

    通过`Criteria`对象,可以添加查询条件、排序规则,甚至子查询,最终调用`list()`或`uniqueResult()`获取结果。 5. **Query API** HQL(Hibernate Query Language)允许开发者使用面向对象的语言进行查询,其语法...

    hibernate代码优化基于配置的多表查询

    通过配置`@JoinTable`、`@JoinColumn`或`@ManyToMany`注解,我们可以指定实体间的关联关系,从而让Hibernate执行单个SQL联合查询,减少网络延迟。 2. **二级缓存配置**: Hibernate的二级缓存能存储已查询过的数据...

    Hibernate-基础联表模板

    通过DetachedCriteria、Criteria、Projection等接口,可以方便地实现联表查询,同时支持各种查询条件、排序和分页。 6. **多对一(One-to-Many)和一对多(Many-to-One)关联** 这是两种常见的关联关系。在...

    Hibernate查询语言

    可以使用Hibernate的Criteria API或Query API来实现动态查询。 ### 五、HQL与JPA的Query接口 在Java Persistence API(JPA)中,Query接口提供了与HQL相似的功能。开发者可以使用`createQuery()`方法创建基于HQL的...

    Hibernate语句

    Criteria查询是Hibernate提供的另一种查询方式,相比HQL(Hibernate Query Language),它更加面向对象,允许动态构建查询。Criteria查询主要涉及以下组件: 1. `Session.createCriteria(Class clazz)`: 创建...

    hibernate_first6项目源码

    【hibernate_first6项目源码】是一个关于Hibernate框架的示例项目,它在之前的版本基础上增加了使用Criteria接口进行查询的功能。Hibernate是一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,允许...

    hibernate测试

    Hibernate提供了Criteria API,一种更加面向对象的查询方式,无需编写SQL,就能完成复杂的查询需求。它允许通过构建Criteria对象和限制条件来执行查询。 6. **HQL(Hibernate Query Language)** HQL是Hibernate...

    试着用zk结合hibernaet实现分页查询

    本话题将探讨如何利用Zookeeper(zk)与Hibernate结合来实现分页查询。Zookeeper是一个分布式协调服务,而Hibernate则是一个流行的Java对象关系映射(ORM)框架,它们的结合可以为分布式环境下的数据处理提供强大...

    hibernate的使用

    《Hibernate的使用与Criteria查询详解》 Hibernate,作为Java领域中的一个强大ORM(对象关系映射)框架,极大地简化了数据库操作,使得开发者可以专注于业务逻辑而无需过多地关心SQL语句的编写。本篇文章将深入探讨...

    Hibernate实现记录的增、删、改和查功能

    这样可以实现分页查询,`setFirstResult()` 设置起始位置,`setMaxResults()` 设置每页最大记录数。 1.6 **子查询**: ```java String hql = "from User user where user.loginName " + "not in(select ur.user....

    SSH框架的增,删,查,改,分页

    - **读取(Read)**:使用Session的get()或load()方法获取单个对象,或者使用Query或Criteria API执行SQL查询返回列表。 - **更新(Update)**:找到要修改的对象,改变其属性,然后调用Session的update()方法。 ...

    hibernate教程

    HQL支持复杂的查询条件、分页、排序等功能。同时,Hibernate还支持Criteria API,提供另一种动态构建查询的方式。 8. Criteria查询 Criteria API 提供了一个更加面向对象的查询方式,它允许在运行时动态构建查询。...

    Hibernate3.2.6源代码以及英文api

    7. **Query和Criteria API的使用**:通过`Session`对象的`createQuery()`或`createCriteria()`方法创建查询,然后设置参数、排序、分页等,最后调用`list()`、`uniqueResult()`等方法执行查询。 8. **事务管理**:...

Global site tag (gtag.js) - Google Analytics