jsp如何实现模糊查询

jsp如何实现模糊查询,第1张

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的员工信息

其实你只要在JSP页面选择了查询条件,将查询条件这些传入Servlet中进行处理,在Servlet中调用相应的数据库处理dao。模糊查询就是在这个dao的sql中进行定义的,需要你根据需要写出相应的sql。比如查询姓张的学生:

sql

=

"select

*

from

student_inf

where

stu_name

like

'张%'"

这仅是个举例,具体你看情况而定。

模糊查询就是在查询数据库的时候在sql上做文章,至于mvc模式,最简单的实现就是jsp+servlet+javaBean。如果楼主不清楚,查阅点资料。

希望我的回答对你有所帮助。

几乎没有对的地方,首先你的时间比较不对.应该首先把字符串转化为日期才能和数据库里的数据进行比较.如果你用的是oracle,应该这样写:

if(!begindate.equals("")){

wheresql+=" and time>=to_date('"+begindate+"','yyyy-mm-dd hh24:mi:ss')"

}

if(!enddate.equals("")){

wheresql+=" and time2<=to_date('"+enddate+"','yyyy-mm-dd hh24:mi:ss')"

}

此外,like也不是这么用的,like不能和等号写一起,应该是:

if(shiyou.equals("username")){

wheresql+=" and username like '%"+shiyou+"%'"

}

String shiyou=com.hr.basic.Parm.getValueStr(request,"username","")

请问你的shiyou是"来访事由"的意思吗?

但是你为什么参数里为什么用"username"?而不是用"来访事由"对应的输入框的

<input type="text" name="d" id="d" ></td>

中的"d"呢?

如果真实这样的话你把name="d"改为 name="username".

你为什么要用"来访事由"和"username"做匹配呢?真的搞不懂.

if(shiyou.equals("username")){

wheresql+=" and username like '%"+shiyou+"%'"

} 你知道这段代码的含义吗?如果if条件成立,执行完将会是

wheresql+=" and username like '%username%'"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10039170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存