程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 用hibernate查詢一段時間的記錄

用hibernate查詢一段時間的記錄

編輯:關於JAVA

這是在一個群裡討論的問題。

方法很多:如果說數據庫中數據的存儲是用date類型的話,改怎麼做,如果說做數據遷移的話又該怎麼做?

最終的討論方案在用字符串存儲格式上比較好,畢竟各個數據庫對時間的存儲存在差異。

一下是我用hibernate中的HQL,和QBC兩種檢索方式對一段時間內的數據進行檢索。

 1 package com.duduli.li;

 2 

 3 import java.util.Date;

 4 import java.util.Iterator;

 5 import java.util.List;

 6 

 7 import org.hibernate.Criteria;

 8 import org.hibernate.Session;

 9 import org.hibernate.Transaction;

10 import org.hibernate.criterion.Criterion;

11 import org.hibernate.criterion.Expression;

12 

13 public class Select {

14 

15     /**

16      * @param args

17      */

18     public static void main(String[] args) {

19         // TODO Auto-generated method stub

20         Session session = HibernateSessionFactory.getSession();

21         Transaction tran = session.beginTransaction();

22 /*        

23  *         采用HQL的方式,

24         Date begin = java.sql.Date.valueOf("2009-03-24");

25         Date end = java.sql.Date.valueOf("2009-03-26");

26         List<A> result = session.createQuery("from A a where a.date > :beginTime and a.date <= :endTime").setTimestamp("beginTime", begin).setTimestamp("endTime", end).list();

27         for(A a : result){

28                 System.out.println(a.getId());

29                 System.out.println(a.getTitle());

30                 System.out.println(a.getDate());

31         }

32         */

33         

34 //        采用QBC的方式。

35         Date begin = java.sql.Date.valueOf("2009-3-24");

36         Date end = java.sql.Date.valueOf("2009-3-26");

37         Criteria criteria = session.createCriteria(AbstractA.class);

38         Criterion creterion = Expression.between("date", begin, end);

39         List<A> result = criteria.add(creterion).list();

40         for(A a : result){

41             System.out.println(a.getId());

42             System.out.println(a.getTitle());

43             System.out.println(a.getDate());

44         }

45     }

46 }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved