您的位置:首页 > 其它

hibernate 查询时 对日期的比较

2013-10-28 19:28 218 查看
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; 

Java代码  


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 ? 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 日期 比较