大家看看还有什么办法可以再简化一下这个查询! :)//查询的条件有3个:1.开始和结束时间 2.根据(id或名称或创建日期) 3.关键字
public ActionForward toSrchIInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception { IntegralInfoForm itForm = (IntegralInfoForm) form;
HashMap<String, String> parameters = new HashMap<String, String>();
String aBrandId = null;
Set brandId = this.getEnterprise(request).getBrands();
if(brandId!=null && brandId.size()!=0)
{
Tbrandmanage mybrand = (Tbrandmanage)brandId.iterator().next();
aBrandId = mybrand.getVbranid(); //得到企业
}
DateUtil tonow = new DateUtil();
String donow = tonow.dateToStr(new Date()); //得到今天的时间
String dformat = "yyyy-MM-dd";
String startt = itForm.getSrhsrtTim(); //获得开始日期
String endt = itForm.getSrhendTim(); //获得结束日期
String skey = itForm.getSrhkey(); //获得查询条件
String srh = itForm.getSrhname().trim(); //关键字
if(skey.equals("2")){ //查询日期2007-1-1,转2007-01-01
String[] srh1 = srh.split("-");
if(srh1[1].length() == 1){ 
srh1[1] = "0" + srh1[1];
}
if(srh1[2].length() == 1){ 
srh1[2] = "0" + srh1[2];
}
srh = srh1[0] + "-" + srh1[1] + "-" + srh1[2];
}
itForm.getConfig().init();
                //得到pojo
itForm.getConfig().setToListInfo(Constants.FORWARD_LIST, Tintegralinfos.class); 
String queryStr = "";
String strWh = " where " , strand = "and";
//创建时间的各种情况
String querydate=" po.addTime >= to_date( :startt,'"+dformat+"') " +
"and po.addTime <= to_date( :endt,'"+dformat+"') ";//日期总和
 //当输入创建时间不全为空时
if(!startt.equals("") || !endt.equals("")){
if("".equals(startt)){
startt=donow;
}
if("".equals(endt)){
endt=donow;
}
}
else{
querydate="";
}
//选择输入条件的情况
String querysrh="";//条件总和
String strId = " po.itId like :srh ";
String strNm = " po.itName like :srh ";
String strAt = " to_char(po.addTime,'"+dformat+"') like :srh ";
//自身的查询条件
String strOd = " po.tbrandManage.vbranid = :vbranid and po.itState not in(1,2) " +
   " order by po.addTime desc";
//当查询条件不为空时
if(!"".equals(srh)){
if(skey.equals("0")){
querysrh=strId;
}
else if(skey.equals("1")){
querysrh=strNm;
}
else if(skey.equals("2")){
            querysrh=strAt;
            }
queryStr+=(strWh+querysrh);

if(!"".equals(querydate)){//当创建时间不全为空时
queryStr+=(strand+querydate+strand+strOd);
parameters.put("startt", startt);
parameters.put("endt", endt);
}
else{
queryStr+=(strand+strOd);
}
parameters.put("srh", "%"+srh+"%");
}
//当为空时
else{
if(!"".equals(querydate)){//当创建时间不全为空时
queryStr+=(strWh+querydate+strand+strOd);
parameters.put("startt", startt);
parameters.put("endt", endt);
}
else{
queryStr+=(strWh+strOd);
}
}
parameters.put("vbranid", aBrandId);
itForm.getConfig().getCondition().setCondition(queryStr);
itForm.getConfig().getCondition().setParameters(parameters);

return pagination(mapping, form, request, response);
}