前言:需要注意的是时间区间的查询,字符串转时间一定要转换正确。
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;
}
分享到:
相关推荐
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
15. 条件查询(Criteria Queries) 15.1. 创建一个Criteria 实例 15.2. 限制结果集内容 15.3. 结果集排序 15.4. 关联 15.5. 动态关联抓取 15.6. 查询示例 15.7. 投影(Projections)、聚合(aggregation)和分组...
11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. Session...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
11.4.3. 条件查询(Criteria queries) 11.4.4. 使用原生SQL的查询 11.5. 修改持久对象 11.6. 修改脱管(Detached)对象 11.7. 自动状态检测 11.8. 删除持久对象 11.9. 在两个不同数据库间复制对象 11.10. ...
16. 条件查询(Criteria Queries) 16.1. 创建一个Criteria 实例 16.2. 限制结果集内容 16.3. 结果集排序 16.4. 关联 16.5. 动态关联抓取 16.6. 查询示例 16.7. 投影(Projections)、聚合(aggregation)和分组...
10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改持久对象 10.6. 修改脱管(Detached)对象 10.7. 自动状态检测 10.8. 删除持久对象 10.9. 在两个不同数据库间复制对象 10.10. Session刷出...
4、 分页查询 5、 统计函数 6. 如何优化Hibernate? 1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多...
4.6.6 使用条件(criteria)查询 4.7 映射继承 4.8 验证领域(domain)模型 4.8.1 使用域约束(domainonstraints) 4.8.2 验证约束(constraints) 4.8.3 自定义约束(constraints) ...