JAVA行军

Good Luck

2007年9月26日

Hibernate和Spring整合中数据查询hql与Criteria Query

hql和Criteria Query是Hibernate中的2种查询封装,但有时适当的选择会有很大的执行效率
 1public List<Record> getRecordsOrderByCreateTime(Date startDate, Date endDate) {
 2        String hql = "from Record record order by record.createTime desc";
 3        List<Record> listRecord = getHibernateTemplate().find(hql);
 4        for(int i = 0; i < listRecord.size(); i++{
 5            if!(listRecord.get(i).getCreateTime().after(startDate) 
 6                    && listRecord.get(i).getCreateTime().before(endDate)) ) {
 7                listRecord.remove(i);
 8            }

 9        }

10        if(listRecord.size() == 0){
11            return null;
12        }

13        return listRecord;       
         }

上面用的是hql语句,没能找到什么好的hql语句,所以执行效率比较低

1public List<Record> getRecordsOrderByCreateTime(Date startDate, Date endDate) {
2        DetachedCriteria criteria = DetachedCriteria.forClass(Record.class);
3        criteria.add(Expression.ge("createTime", startDate));
4        criteria.add(Expression.le("createTime", endDate));
5        criteria.addOrder(Order.desc("createTime"));
6        List<Record> listRecord = getHibernateTemplate().findByCriteria(criteria);
7        if(listRecord.size() == 0){
8            return null;
9        }
            return listRecord;
        }

这个用的是 Criteria Query 由于里面直接封装了好多比较的方法,效率比较搞

posted @ 2007-09-26 17:29 ILOVEYOU 阅读(3175) | 评论 (3)编辑 收藏

Date和String的转换

 

 1import java.text.DateFormat; 
 2import java.text.SimpleDateFormat; 
 3import java.text.ParseException; 
 4import java.util.Calendar; 
 5import java.util.Date; 
 6
 7
 8DateFormat format = new SimpleDateFormat("yyyy-MM-dd");         
 9            Date date = null;    
10            String str = null;                  
11                        
12            // String转Date    
13            str = "2007-9-26";          
14            try {    
15                date = format.parse(str);  // Wed sep 26 00:00:00 CST 2007    
16            }
 catch (ParseException e) {    
17                e.printStackTrace();    
18            }
    
19                        
20            date = java.sql.Date.valueOf(str);  // 只保留日期部分,返回的是java.sql.Date  2007-9-26    
21                        
22            // Date转String    
23            date = new Date();   // Wed sep 26 18 17:14:01 CST 2007       
24            str = format.format(date);  // 2007-9-26    
25                        
26            format = DateFormat.getDateInstance(DateFormat.SHORT);    
27            str = format.format(date);  // 07-9-26    
28                        
29            format = DateFormat.getDateInstance(DateFormat.MEDIUM);    
30            str = format.format(date);  // 2007-9-26   
31                        
32            format = DateFormat.getDateInstance(DateFormat.FULL);    
33            str = format.format(date);  // 2007年9月26日 星期三   

posted @ 2007-09-26 17:17 ILOVEYOU 阅读(3875) | 评论 (0)编辑 收藏

<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

常用链接

留言簿(1)

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜