`

Hibernate的Criteria查询分页示例

阅读更多
前言:需要注意的是时间区间的查询,字符串转时间一定要转换正确。
1、时间转换
/** 
     * 字符串时间通过Calendar转成Date类型 
     *  
     * @param date   字符串时间
     *  
     * @param format 匹配日期格式
     * @return 
     * @throws ParseException  
     */  
    private  Date  parseStrToDateByCalendar(String date,String format) throws ParseException{  
        SimpleDateFormat formatter = new SimpleDateFormat(format);  
        Calendar calendar=Calendar.getInstance();  
        calendar.setTime(formatter.parse(date));  
        Date convertedDate=calendar.getTime();  
        return convertedDate;  
    }  


2、分页查询
	public Map<String, Object> getHistoryAlramByType(String carNumber,
			String startTime, String endTime, int type, int status, int doflag,
			int pageNo, int pageSize, String sortName, String sortOrder) {
		Criteria criteria = getSession().createCriteria(Alarm.class);
		criteria.add(Restrictions.eq("alarmType", type));
		if (!startTime.equals("") && !endTime.equals("")) {
			Date startDate=null,endDate=null;
			try {
				startDate = this.parseStrToDateByCalendar(startTime, "yyyy-MM-dd HH:mm:ss");
			} catch (ParseException e) {
				e.printStackTrace();
			}
			try {
				endDate = this.parseStrToDateByCalendar(endTime, "yyyy-MM-dd HH:mm:ss");
			} catch (ParseException e) {
				e.printStackTrace();
			}
			criteria.add(Restrictions.between("serviceTime", startDate, endDate));
		}
		if (!carNumber.equals("")) {
			criteria.add(Restrictions.eq("carNumber", carNumber));
		}
		if (status != -2) {
			criteria.add(Restrictions.eq("status", status));
		}
		if (doflag != -1) {
			criteria.add(Restrictions.eq("doFlag", doflag));
		}
        int total =criteria.list().size();        // 统计符合条件数据的总数
		if (sortOrder.equals("asc")) {            // 按字段排序
			criteria.addOrder(Order.asc(sortName));
		} else {
			criteria.addOrder(Order.desc(sortName));
		}
		criteria.setMaxResults(pageSize);             // 最大显示记录数
		criteria.setFirstResult((pageNo-1)*pageSize); // 从第几条开始
		List<Alarm> list = criteria.list();
        
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("Total", total);
		map.put("Rows", list);
		return map;
	}
分享到:
评论

相关推荐

    hibernate 模糊查询 分页

    在IT行业中,ORM(Object-Relational Mapping)框架如Hibernate被广泛用于简化Java...在提供的`SplitPage`文件中,可能包含了具体的实现细节和示例代码,进一步学习这些内容将加深你对Hibernate模糊查询和分页的理解。

    hibernateCriteria查询

    通过上述示例可以看出,Hibernate Criteria查询非常灵活且功能强大,能够满足大多数应用场景的需求。相比于HQL查询,Criteria查询更加强调对象化的查询方式,使得查询逻辑更加清晰和易于维护。在实际开发中,可以...

    Hibernate 多表连接分页查询示范项目

    总结,"Hibernate 多表连接分页查询示范项目"是一个实用的示例,它展示了如何在实际应用中利用 Hibernate Criteria API 实现复杂查询和分页,对于学习和掌握 Hibernate 的高级特性和数据库操作技巧非常有帮助。...

    Hibernate查询方式代码示例

    本教程将深入探讨Hibernate 3.x版本中的查询方式,包括基本查询、HQL(Hibernate Query Language)以及Criteria API,帮助开发者更高效地处理数据库交互。 1. **基本查询(Criteria API)** Hibernate Criteria ...

    Hibernate Criteria用法大全.docx

    Hibernate Criteria API 是一种面向对象的查询方式,它提供了一种比HQL(Hibernate Query Language)更为简洁且直观的查询手段。通过Criteria API,开发者可以构建复杂的查询条件,无需直接编写SQL,使得代码更加...

    Hibernate中分页查询的封装。

    除了Criteria查询,还可以使用HQL(Hibernate Query Language)进行分页查询,HQL是Hibernate提供的面向对象的查询语言,语法类似SQL。以下是一个使用HQL分页查询的例子: ```java String hql = "from User"; Query...

    使用hibernate分页查询

    在Hibernate中,我们通常使用`Criteria`或`Query` API进行分页查询。`Criteria`提供了一种更面向对象的方式来执行SQL查询,而`Query` API则对应于原生的SQL语句。在这些API中,我们可以设置`setFirstResult()`和`...

    基于hibernate_mysql分页通用源码

    基于Hibernate的分页通常可以通过HQL(Hibernate Query Language)或者Criteria API实现,也可以结合数据库自身的分页功能,比如MySQL的LIMIT和OFFSET关键字。 4. Struts2:Struts2是一个强大的MVC(Model-View-...

    Hibernate-Criteria_模糊查询

    在深入探讨Hibernate与Criteria结合进行模糊查询之前,我们先来了解一下Hibernate和Criteria的基本概念,以及为何选择使用它们进行模糊查询。 ### Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)...

    hibernate criteria 分组 排序 关联

    ### Hibernate Criteria 分组、排序与关联查询详解 #### 标题与描述理解 - **标题**:“hibernate criteria 分组 排序 关联”这一标题明确了本文将围绕Hibernate Criteria API进行分组、排序以及关联查询的具体...

    Hibernate+sqlserver2000分页

    本篇文章将深入探讨使用Hibernate ORM框架与SQL Server 2000数据库进行分页查询的方法。 首先,Hibernate是Java领域中最流行的ORM(对象关系映射)框架之一,它允许开发者使用面向对象的方式操作数据库,减少了直接...

    基于spring+hibernate的组合查询+分页组件

    以下是一个简单的示例,展示如何在Spring和Hibernate中实现组合查询和分页: ```java @Service public class UserService { @Autowired private SessionFactory sessionFactory; public Page&lt;User&gt; ...

    用Hibernate实现分页查询.docx

    ### 使用Hibernate实现分页查询 #### 一、分页查询概念及原理 ...使用上述`Employee`实体类,我们可以通过Hibernate的`Criteria`接口实现分页查询功能。 以上是关于使用Hibernate实现分页查询的相关知识点介绍。

    springMVC+hibernate的条件查询加分页的demo

    总的来说,"springMVC+hibernate的条件查询加分页的demo"涵盖了Web应用中常见的查询和分页需求,通过SpringMVC接收和处理用户请求,利用Hibernate的Criteria查询动态构造SQL,并通过设置分页参数实现数据的分批次...

    hibernate分页代码

    总结起来,"hibernate分页代码"是一个关于如何在Hibernate中进行分页查询的实践示例,适用于在MyEclipse环境下运行。通过Criteria API或HQL,开发者能够方便地实现分页功能,提升应用性能,为用户提供更好的体验。...

    Hibernate-Criteria 模糊查询

    ### Hibernate-Criteria 模糊查询详解 #### 一、引言 在软件开发过程中,数据库查询操作是非常常见的需求之一。Hibernate作为一款优秀的Java持久层框架,提供了多种方式来进行数据库操作,其中包括HQL(Hibernate ...

    用户Hibernate实现的一个分页

    1. Hibernate的Query和Criteria API都提供了分页功能。使用`setFirstResult()`方法设置查询开始的位置,即第几条记录,以及`setMaxResults()`方法设置一次返回的最大记录数,这两者结合即可实现分页。 2. Query API...

    struts2.0 + hibernate + oracle 分页问题

    在分页查询中,Hibernate提供了Criteria、HQL(Hibernate Query Language)以及Query API等多种方式实现。例如,可以使用`setFirstResult`和`setMaxResults`方法来限制返回的结果集,从而实现分页。 Oracle数据库是...

    hibernate实现分页

    1. **Criteria API**:Hibernate的Criteria API允许我们创建动态查询,同时也支持分页。通过设置`setFirstResult()`和`setMaxResults()`方法,可以实现分页效果。例如: ```java Criteria criteria = session....

    SSH:Struts2.2+Hibernate3.6+Spring3.1分页示例

    Hibernate的Criteria API或HQL(Hibernate Query Language)可以方便地实现这种定制查询。此外,Hibernate的Session接口提供了缓存机制,提高了数据访问性能。 Spring框架则作为一个服务和依赖注入容器,它协调...

Global site tag (gtag.js) - Google Analytics