hibernate中遇到组合模糊查询

hibernate中遇到组合模糊查询

方法一:


//获取前端传递过来的参数
Map<String,Object> mapRequest = RequestUtil.getRequestParameter2Object(request);
String hql = "from Phone phone ";
Map<String, Object> hqlParams = new HashMap<String, Object>();	
//用于记录 拼接次数
int i = 0;
//名称是否为空
if (mapRequest.get("name") != null) {
	hql = hql + "where phone.name like :name ";
	hqlParams.put("name", "%" + mapRequest.get("name") + "%");
	i++;

}
//编号是否为空
if(mapRequest.get("Number") != null){
	if(i>0){
		hql = hql + "AND ";
	}else{
		hql = hql + "where ";
	}
	hql = hql + "phone.Number like :Number ";
	hqlParams.put("Number", "%" + mapRequest.get("Number") + "%");
	i++;

}
//版本是否为空
if(mapRequest.get("ver") != null){
	if(i>0){
		hql = hql + "AND ";
	}else{
		hql = hql + "where ";
	}
	hql = hql + " phone.ver like :ver ";
	hqlParams.put("ver", "%" + mapRequest.get("ver") + "%");
	i++;

}
//状态是否为空
if(mapRequest.get("status") != null){
	if(i>0){
		hql = hql + "AND ";
	}else{
		hql = hql + "where ";
	}
	hql = hql + "phone.status like :status ";
	hqlParams.put("status", "%" + mapRequest.get("status") + "%");
	i++;

}
//table 相关属性检查
TableVo tableVo = Check.isTable(request);
//获取总行数
Long total = phoneDao.countRowsByHQL(hql, hqlParams);
//获取数据列表
List<Phone> phone = phoneDao.searchDatasByHQL(hql, hqlParams, tableVo.getPage(), tableVo.getRows());

方法二:


public List<Phone> queryPhones(int id, String name, String ver, String price) {
	String hql="from Phone phone where 1=1";
	if(id!=0)
		hql=hql+" and phone.id like '%"+id+"%'";
	if(name!=null&& !"".equals(name))
		hql=hql+" and phone.name like '%"+name+"%'";
	if(city!=null&& !"".equals(ver))
		hql=hql+" and phone.ver like '%"+ver+"%'";
	if(price!=null&& !"".equals(price))
		hql=hql+" and phone.price like '%"+price+"%'";
	return getSession().createQuery(hql).list();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值