这是我完成的一个效果,根据左边所选的一个查询项目和右边的一个查询内容结合成一个模糊查询。
普通的sql查询直接select *from 表名这样就可以把整个表的数据全部查询出来,根据ID查询那些直接在后面加where id=?,给个占位符这样你想查哪个ID都可以。
模糊查询和其他普通的查询无非就是多了个拼接sql查询语句。
String findPage=“SELECT sc.CommodityNumber,sc.CommodityDetailID,sc1.ShopName,sc1.DropPrice,sc1.StyleNumber,sco.ColourName,ss.SizeName,sr.RepertoryCount \r\n” +
"FROM s_commoditydetail sc
\r\n" +
"INNER JOIN s_commodity sc1
ON sc.CommodityID=sc1.CommodityID \r\n" +
"INNER JOIN s_size ss ON
sc.SizeID=ss.SizeID \r\n" +
"INNER JOIN s_colour sco ON
sc.ColourID=sco.ColourID \r\n" +
"INNER JOIN s_repertory sr ON
sr.CommodityDetailID=sc.CommodityDetailID WHERE “+wheres +” LIMIT ?,?";
这是一个我查询数据的sql语句,然后wheres就是查询的条件,这个查询的条件就根据你自己的需求,这个条件就在Servlet中处理好在传过来直接一套上去用就行。有种情况就是如果查询的条件为空时你给wheres给个true值就行
然后这里还有个sql的查询分页的关键字LIMIT这个属性,这个分页效果就直接在数据库中就处理
也可以直接查询全部数据后再处理。
。
下面这个是我在Servlet中处理的代码,很简单只要会sql模糊查询语句就直接拼接就行
String cont = request.getParameter("cont");
String Xianmu = request.getParameter("XianmuID");
if(Tools.isNotNull(cont)) {
if("0".equals(Xianmu)) {
tiaojan=" CommodityNumber LIKE
‘%"+cont+"%’";
}else if("1".equals(Xianmu)) {
tiaojan=" ShopName LIKE '%"+cont+"%'";
}
else if("2".equals(Xianmu)) {
tiaojan=" StyleNumber LIKE '%"+cont+"%'";
}
else if("3".equals(Xianmu)) {
tiaojan=" ColourName LIKE '%"+cont+"%'";
}
else if("4".equals(Xianmu)) {
tiaojan=" SizeName LIKE '%"+cont+"%'";
}
}
Cont获取所需要模糊查询的内容,Xianmu获取所需要模糊查询对应的某个字段,然后就拼接就完事了。