码迷,mamicode.com
首页 > 其他好文 > 详细

多条件查询处理

时间:2015-03-02 11:29:07      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:多条件查询与where1=1

在检索的时候我们经常会遇到多条件查询的情况,这种情况有时候很棘手,下面是我的解决方法。

先举个例子:查询条件:登录名,ip地址。类别,登陆时间(startTime  endTime)

<div id="tb" style="padding:3px">
	<form id="searchForm">
		<span>登录名</span>
		<input id="loginName" style="border:1px solid #ccc" name="loginName" >
		<span>IP地址</span>
		<input id="ip" style="border:1px solid #ccc" name="ip">
		<span>类别</span>
		<select id="combobox" class="easyui-combobox" name="type" style="width:100px;">   
         <option >登录系统</option>   
         <option>退出系统</option>   
       </select>  

		<span>登陆时间</span>
		<input name="startTime" class="easyui-datetimebox" editable="false"  style="border:1px solid #ccc">-<input name="endTime" class="easyui-datetimebox" editable="false"  style="border:1px solid #ccc">
		
		<a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="doSearch()"  >检索</a>
		<a href="#" class="easyui-linkbutton" iconCls="icon-redo" onclick="clear()" >重置检索</a>
		</form>
	</div>

遇到这种情况的话很棘手。分析如下

1)在表单提交的时候验证,规定那个不能为空什么的,但是这样的话就会出现一个问题,有时候我们并不需要这个条件,也就是说某个条件可空可不空,每个条件都是独立的,可以组合条件查询,可以单独查询这样的话验证没有多大意义,违背了我们的初衷(单兵作战与团伙作案,哈哈哈)。

2)所以我们在后台接受这些条件,并根据条件写出查询语句,查询语句是重点。

1.如果没有条件的话:select * from User ;

2.有条件的话Select * from User where 条件1 and 条件2 and 条件3

这时候出现了问题,第一种情况你必须判断这5个条件同时为空,第二种更麻烦。

where 1=1闪亮登场,将1和2结合成一种情况。代码:

 public String findHql(String sort,String order,UserHistory model, String startTime,  String endTime){
	   String hql="from UserHistory uh where 1=1 ";
	   if(model.getLoginName()!=null){
		hql+=" and uh.loginName=‘"+model.getLoginName()+"‘";
	   }
	   if(model.getType()!=null){
		   hql+=" and uh.type=‘"+model.getType()+"‘";
	   }
	   if(model.getIp()!=null){
		   hql+=" and uh.ip=‘"+model.getIp()+"‘"; 
	   }
	   if(startTime.length()>0){
		   hql+=" and uh.loginTime>=‘"+startTime+"‘";  
	   }
	   if(endTime.length()>0){
		   hql+=" and uh.loginTime<=‘"+endTime+"‘";  
	   }
	   hql+=" order by "+sort+" "+order;
	return hql;
	   
   }	

说了这么多的废话无非就是为了说明where 1=1这个条件的重要性。尤其是在多条件查询时。

多条件查询处理

标签:多条件查询与where1=1

原文地址:http://8648389.blog.51cto.com/8638389/1616365

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!