`
zgqynx
  • 浏览: 1364079 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate 查询时 对日期的比较

阅读更多
http://www.roseindia.net/hibernate/hibernate-between-date.shtml
Hibernate's Built-in criterion: Between (using with Date)
In this section, you will learn to use "between" i.e.one of the built-in hibernate criterions. Restriction  class  provides built-in criterion via static factory methods. One important  method of the Restriction class is between : which is used to apply a "between" constraint to the named property

In this tutorial, "Between" is used with the date object. It takes three parameters e.g.  between("property_name",startDate,endDate)

Here is the code of the class using "between" with the Date class :
package roseindia.tutorial.hibernate;

import org.hibernate.*;
import org.hibernate.criterion.*;
import org.hibernate.cfg.*;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * @author Deepak Kumar
 * 
 * http://www.roseindia.net 
Hibernate Criteria Query Example
 *  
 */public class HibernateCriteriaQueryBetweenDate {
  public static void main(String[] args) {
    Session session = null;
    try {
      // This step will read 
hibernate.cfg.xml and prepare hibernate for
      // use
      SessionFactory sessionFactory 
= new Configuration().configure()
          .buildSessionFactory();
      session = sessionFactory.openSession();
      //Criteria Query Example
      Criteria crit = 
session.createCriteria(Insurance.class);
      DateFormat format = 
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
      Date startDate = 
(Date)format.parse("2005-01-01 00:00:00");
      Date endDate = 
(Date)format.parse("2005-03-03 00:00:00");
      crit.add(Expression.between
("investementDate", new Date(startDate.getTime()),
 new Date(endDate.getTime()))); //
Between date condition
      crit.setMaxResults(5); //
Restricts the max rows to 5

      List insurances = crit.list();
      for(Iterator it = 
insurances.iterator();it.hasNext();){
        Insurance insurance = 
(Insurance) it.next();
        System.out.println("
ID: " + insurance.getLngInsuranceId());
        System.out.println("
Name: " + insurance.getInsuranceName());
        System.out.println("
Amount: " + insurance.getInvestementAmount());
        System.out.println("
Date: " + insurance.getInvestementDate());
        
      }
      session.close();
    } catch (Exception e) {
      System.out.println(e.getMessage());
    } finally {
    }    
  }
}

Download this code:

Output:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

Hibernate: select this_.ID as ID0_0_, this_.insurance_name as insurance2_0_0_, this_.invested_amount as invested3_0_0_,
this_.investement_date as investem4_0_0_ from insurance this_ where this_.investement_date between ? and ? limit ?

ID: 1

Name: Car Insurance

Amount: 1000

Date: 2005-01-05 00:00:00.0

ID: 4

Name: Car Insurance

Amount: 2500

Date: 2005-01-01 00:00:00.0

ID: 7

Name: Travel Insurance

Amount: 2000

Date: 2005-02-02 00:00:00.0

ID: 8

Name: Travel Insurance

Amount: 600

Date: 2005-03-03 00:00:00.0
分享到:
评论

相关推荐

    解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题

    - **使用SQL查询**:在查询时,直接使用SQL语句来获取日期时间,避免Hibernate的自动转换。 - **自定义Type**:创建自定义的Hibernate类型,覆盖默认的日期时间处理方式,以满足特定需求。 以上就是关于"解决...

    Hibernate 函数 ,子查询 和原生SQL查询

    虽然Hibernate提供了ORM的方式,但有时我们可能需要使用原生的SQL查询来访问数据库,尤其是当ORM无法满足复杂需求时。在Hibernate中,可以通过以下方式执行原生SQL: 1. `Session.createSQLQuery(sql)`:创建一个...

    hibernate 影院信息查询

    《hibernate 影院信息查询》是一款基于Hibernate框架开发的影院信息查询系统,它集成了详细的注释,便于理解和学习。本系统适用于北大青鸟等教育机构的学员,为他们提供了一个实战项目的实例,帮助他们更好地掌握...

    Hibernate查询语言.doc

    在`where`子句中,可以使用各种表达式,包括数学运算符、比较运算符、逻辑运算符、函数(如日期和时间函数)等。 3. **查询执行与结果处理** 调用`list()`方法执行查询,结果会加载到内存中的集合。返回的对象...

    hibernateCriteria查询

    若要对查询结果进行排序,可以使用`Criteria` 的`addOrder()` 方法。例如,按价格降序排列: ```java Criteria criteria = session.createCriteria(Books.class); criteria.addOrder(Order.desc("price")); List...

    Hibernate4.0,Hibernate5.2,Hibernate5.6 jar包

    它还引入了对Java 8特性的支持,比如日期和时间API的改进。在多线程和并发处理方面也做了优化,提供了更好的事务管理策略。此外,5.2版本还强化了对JPA Criteria API的实现,使其更加强大且易于使用。 最后,...

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    Hibernate3.6

    5. **Query 改进**:HQL 和 Criteria 查询支持更多的函数和操作符,如日期、时间函数、集合操作等,使得查询表达力更加强大。 6. **性能优化**:3.6 版本对缓存机制进行了优化,支持更高效的二级缓存策略,同时优化...

    Hibernate查询语言

    Hibernate查询语言(HQL)是Java开发者在使用Hibernate框架时进行数据检索的一种强大的工具。它是一种面向对象的查询语言,允许开发者用类名和属性名而不是数据库表和字段来编写查询,极大地简化了数据库操作。本...

    Hibernate(多对多表操作)

    本主题将深入探讨如何在Hibernate中处理多对多的关系映射,这是数据库设计中常见的一种关系类型。 多对多关系在数据库中意味着一个表中的记录可以与另一个表中的多个记录相关联,反之亦然。例如,学生和课程的关系...

    hibernate jar包和dtd

    使用XML配置时,开发人员需要参照DTD来构造合法的元素和属性,以实现对数据库的正确映射。此外,随着Java Persistence API(JPA)的普及,Hibernate也开始支持注解配置,这种方式更加简洁,减少了XML的使用。 总的...

    hibernate jar包

    Hibernate是一款强大的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,将复杂的SQL语句和数据操作转化为对Java对象的操作。在Java应用中,Hibernate扮演着一个中间层的角色,使得开发者可以专注于...

    hibernate api

    15. **Native SQL**: 当HQL无法满足需求时,Hibernate还支持执行原生的SQL查询,通过SQLQuery接口实现。 这些知识点构成了Hibernate 3.0 API的基础,通过熟练掌握和应用这些功能,开发者能够高效地进行数据库操作,...

    hibernate5.2.12源码包

    通过对源码的深入学习,开发者能够更好地理解Hibernate如何处理ORM映射、事务、查询、缓存等核心功能,从而提升自己的开发技能和解决问题的能力。同时,对于希望对框架进行二次开发或贡献代码的开发者,源码包更是必...

    hibernate3.1

    Criteria API则提供了一种基于对象的动态查询方式,可以在运行时构建查询条件,更加灵活。 四、事务管理与缓存机制 Hibernate 3.1支持JTA(Java Transaction API)和JPA(Java Persistence API)的事务管理,确保...

    Hibernate 转译中文版

    8. **延迟加载**(Lazy Loading):Hibernate允许对关联对象进行延迟加载,即只有在真正需要时才会加载,从而避免了不必要的数据库访问,提高了效率。 9. **事件监听器**:Hibernate允许自定义事件监听器,实现对...

    hibernate5.3.0jar包下载

    总的来说,Hibernate 5.3.0是一个强大且成熟的ORM框架,它的特性包括但不限于:强大的对象关系映射、高效的查询机制、完善的缓存策略、对Java 8的完美支持以及丰富的扩展性。通过下载并使用这个jar包,开发者能够...

    hibernate中文参考文档pdf

    14. **Hibernate与JPA**:比较Hibernate与Java Persistence API(JPA)的关系,以及如何在JPA规范下使用Hibernate。 15. **其他高级特性**:包括实体继承、多态性、集合映射、复杂类型、时间/日期处理、SQL特定功能...

Global site tag (gtag.js) - Google Analytics