jsp 实现模糊查询

按照图片选的条件进行搜索数据库里的内容.
例如;TEXT框的name=zpmc
多选框的name分别为:csdx,zplx,zpfg
TEXT框的name为zz,dw
数据库与其有关的表,和列的名为:student(表名),zpmc,csdx,zplx,zpfg,zz,dw(列名)
应该先判断是否为空..后再...
我的语句这样:
String sql = "SELECT * FROM ppt WHERE 1=1";
if(!zpmc.equals("")&&zpmc!=null){
sql=sql+ " OR zpmc like '%"+zpmc+"%'";
}else
if(!csdx.equals("")&&csdx!=null){
sql=sql+ " OR csdx like '%"+csdx+"%'";
}else
if(!zplx.equals("")&&zplx!=null){
sql=sql+ " OR zplx like '%"+zplx+"%'";
}else
if(!zpfg.equals("")&&zpfg!=null){
sql=sql+ " OR zpfg like '%"+zpfg+"%'";
}else
if(!zz.equals("")&&zz!=null){
sql=sql+ " OR zz like '%"+zz+"%'";
}else
if(!dw.equals("")&&dw!=null){
sql=sql+ " OR dw like '%"+dw+"%'";
}

------------------------------------------------------------
搜索出来的不符合我的意思..
String zpmc = request.getParameter("zpmc");
String csdx = request.getParameter("csdx");
String zplx = request.getParameter("zplx");
String zpfg = request.getParameter("zpfg");
String zz = request.getParameter("zz");
String dw = request.getParameter("dw");

jsp模糊查询是根据页面上输入的关键字进行部分匹配来实现的。分为前向检索和后项检索。
这个主要是在sql端实现的,只要页面参数选择正确:

比如:
查询所有员工姓名中第二个字符为A的员工信息
select * from emp where ename like '_A%';
查询员工姓名中包含E的员工信息
select * from emp where ename like '%E%';
查询20部门员工姓名中包含E的员工信息
查询20部门员工,职位为'MANAGER',姓名中包含E的员工信息
查询20部门员工,职位为'MANAGER',姓名的第二个字符为A,最后一个字符为E的员工信息
查询20部门员工,职位为'MANAGER',姓名的包含S并且包含E的员工信息
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-24
补充:
lz是否指在一个文本框中输入多个关键字?如果是的话,用分隔符(一般是逗号)把这几个关键词分解出来:
conditions.split(" ");
然后把每个关键词都拼接到查询语句中去就行了。最后拼接的过程如:
where columnname like "'%" + condition[0] +"%'" and columnname like "'%" + condition[1] +"%'"
===================
如果lz是使用数据库,那么查询时,使用 where columnname like "'%" + condition +"%'"就可以了,%是通配符
第2个回答  2011-05-22
楼主应该是要实现的是一个查询的功能吧,但你的方法显然是很……麻烦的,从request对象中,你可以获取到传入servlet的参数的key和values,这个key不就是你数据库中的列,而这个values不就是你的模糊条件吗?不知你懂没懂?说的是我自己的想法,我一直都这么做的,比较的简单,代码比较的简单,而且也很少追问

我不懂..能给些例子我吗-_-!..麻烦了!!!

第3个回答  推荐于2016-11-19
是多选框出问题了吧,多选框值的接收应用String csdx[] = getParameterValues("csdx");本回答被提问者采纳
相似回答