JSP怎么实现多条件模糊搜索
比如交友网站中的搜索好友,可以选填一个要求,可以选选填多个要求,我想知道我该如何控制SQL语句,如果把用户可能填的所有情况都列出来,再依次选择不同的语句,会很麻烦,各位兄...
比如交友网站中的搜索好友,可以选填一个要求,可以选选填多个要求,我想知道我该如何控制SQL语句,如果把用户可能填的所有情况都列出来,再依次选择不同的语句,会很麻烦,各位兄台有没有简单点的方法
展开
4个回答
展开全部
//import org.hibernate.Criteria;你说的功能用hibernate实现起来比较方便
下面是代码:
Criteria criteria = session.createCriteria(CardSaleRecord.class);
//CardSaleRecord也就是你想查询的表所对应得实体类,但是要在映射文件中配置
//创建别名,可不要
criteria.createAlias("cityCode", "c");
criteria.createAlias("productCode", "p");
//从页面中获取来的模糊查询的条件
Date fromDate = cardSaleFormBean.getYearMonth();
Date toDate = cardSaleFormBean.getTimeSpan();
String cityCode = cardSaleFormBean.getCityCode().getCityCode();
String productCode = cardSaleFormBean.getProductCode().getProductCode();
String status = cardSaleFormBean.getSelectAuditStatus();
//根据条件是否为空,是否在sql语句中增加约束条件
if(null!=fromDate){
criteria.add(Restrictions.gt("saleDate", fromDate));
}
if(null!=toDate){
criteria.add(Restrictions.lt("saleDate", toDate));
}
if(!"default".equals(cityCode)){
criteria.add(Restrictions.eq("c.cityCode", cityCode));
}
if(!"default".equals(productCode)){
criteria.add(Restrictions.eq("p.productCode", productCode));
}
if(!"default".equals(status)){
criteria.add(Restrictions.eq("checkStatus", status));
}
//返回结果
return criteria.list();
既然是网站上用的,那就选择struts spring hibernate进行设计吧,现在的网站设计都会是用到。
下面是代码:
Criteria criteria = session.createCriteria(CardSaleRecord.class);
//CardSaleRecord也就是你想查询的表所对应得实体类,但是要在映射文件中配置
//创建别名,可不要
criteria.createAlias("cityCode", "c");
criteria.createAlias("productCode", "p");
//从页面中获取来的模糊查询的条件
Date fromDate = cardSaleFormBean.getYearMonth();
Date toDate = cardSaleFormBean.getTimeSpan();
String cityCode = cardSaleFormBean.getCityCode().getCityCode();
String productCode = cardSaleFormBean.getProductCode().getProductCode();
String status = cardSaleFormBean.getSelectAuditStatus();
//根据条件是否为空,是否在sql语句中增加约束条件
if(null!=fromDate){
criteria.add(Restrictions.gt("saleDate", fromDate));
}
if(null!=toDate){
criteria.add(Restrictions.lt("saleDate", toDate));
}
if(!"default".equals(cityCode)){
criteria.add(Restrictions.eq("c.cityCode", cityCode));
}
if(!"default".equals(productCode)){
criteria.add(Restrictions.eq("p.productCode", productCode));
}
if(!"default".equals(status)){
criteria.add(Restrictions.eq("checkStatus", status));
}
//返回结果
return criteria.list();
既然是网站上用的,那就选择struts spring hibernate进行设计吧,现在的网站设计都会是用到。
展开全部
select * from table where aa like %'temp1'% and bb like %'temp2'%...
temp1和temp2就是你页面传过来的字符串,总之类似这样的吧
temp1和temp2就是你页面传过来的字符串,总之类似这样的吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
StringBuffer sql = new StringBuffer();
sql.append("select * from tableName where 1=1");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
sql.append("select * from tableName where 1=1");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");if(strValue!=null||strValue!="")
sql.appden(" and cName = strValue");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql 语句用 或 来试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询