职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 479|回复: 1

网页前端多条件搜索 后台分页方法代码

[复制链接]
fossil 发表于 2011-8-28 09:02 | 显示全部楼层 |阅读模式



      多条件查询分页方法:
       public Map fenye(Map paramMap) {
// 第几页
Integer page = (Integer) paramMap.get("page");
Integer size = (Integer) paramMap.get("size");

// 取值
int empId = -1; // 员工编号
String empIdString = (String) paramMap.get("empId");
if (empIdString != null && empIdString.length()>0)
empId = Integer.parseInt(empIdString);

// 名称
String empName = (String) paramMap.get("empName");

// 性别
int empSex = -1;
String empSexString = (String) paramMap.get("empSex");
if (empSexString != null && empSexString.length()>0)
empSex = Integer.parseInt(empSexString);

// 部门
int depId = -1;
String depIdString = (String) paramMap.get("depId");
if (depIdString!=null && depIdString.length()>0)
  depId = Integer.parseInt(depIdString);

// 时间
String startAgeString = (String) paramMap.get("startAge");
String endAgeString = (String) paramMap.get("endAge");
Date startAge = null;
Date endAge = null;
if (startAgeString != null && startAgeString.length()>0) {
startAge = java.sql.Date.valueOf(startAgeString);
}
if (endAgeString != null && endAgeString.length()>0) {
            endAge   = java.sql.Date.valueOf(endAgeString);
}
//拼hql语句
String hqlCount = "select count(*) from Emp where 1=1 ";
String hql = "from Emp where 1=1 ";

List values = new ArrayList();
if (empId!=-1)
{
hql = hql + " and empId=?";
hqlCount = hqlCount +" and empId=?";
values.add(empId);
}
if (empName!=null && empName.length()>0 ){
hql = hql + " and empName like ?";
hqlCount = hqlCount +" and empName like ?";
values.add(empName+"%");
}

if (empSex!=-1)
{
hql = hql + " and empSex=?";
hqlCount = hqlCount +" and empSex=?";
values.add(empSex);
}

if (depId!=-1)
{
hql = hql + " and dep.depId=?";
hqlCount = hqlCount +" and dep.depId=?";
values.add(depId);
}

if (startAge!=null && endAge!=null){
hql = hql + " and empBirthday between ? and ?";
hqlCount = hqlCount +" and empBirthday between ? and ?";
values.add(startAge);
values.add(endAge);
}
else if (startAge!=null && endAge==null){
hql = hql + " and empBirthday >= ?";
hqlCount = hqlCount +" and empBirthday >=?";
values.add(startAge);
}
else if (startAge==null && endAge!=null){
hql = hql + " and empBirthday <= ?";
hqlCount = hqlCount +" and empBirthday <=?";
values.add(endAge);
}




//设?号
Query query = getSession().createQuery(hql);
Query queryCount = getSession().createQuery(hqlCount);
if (values.size()>0){
for (int i=0;i<values.size();i++){
queryCount.setParameter(i, values.get(i));
query.setParameter(i, values.get(i));
}
}
// 总条数
Object countObject =queryCount.uniqueResult();
int sum = Integer.parseInt(countObject.toString());
// 总页数
int count = sum % size == 0 ? sum / size : sum / size + 1;
// 越界检查
if (page < 1)
page = 1;
if (page > count)
page = count;
// 查


query.setFirstResult((page - 1) * size).setMaxResults(size);
List list = query.list();

// 保存到map
Map resultMap = new HashMap(0);
resultMap.put("list", list);// 内容
resultMap.put("page", page);// 当前页数
resultMap.put("size", size);// 大小
resultMap.put("count", count);// 总页数
resultMap.put("sum", sum);// 总条数

return resultMap;
}



s09-hibernate-9.rar (6.7 MB)
下载次数: 8

江南枫 发表于 2011-8-28 09:02 | 显示全部楼层
推荐链接
20-30万急聘多名天才Java/MTA软件工程师
3G培训就业月薪平均7K+,不3K就业不花一分钱!
见证又一个准百万富翁的诞生!


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-30 00:22 , Processed in 0.095223 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表