我想做一个像百度一样:如点击网页,就查询“网页”这一个表。点击新闻,就查“新闻”这一个表。(注:在这里我把网页和新闻各看成各的单独的表)!现在我把页面做完了,后台的查询也写完了,点击那个如百度样的文本框旁的按钮也可以实现下面对表的查询,但是它实现的是查询整个表,不是表中的某个字段,比如我想查邮件表中的收件人,他就查询不出来,出来的是整个数据!我碰到的问题是,我怎么知道那个文本框里查询的哪个表的哪个字段呢?不说多了,上个图吧!有图有真相,才清晰!java难题解答谢谢
解决方案 »
- org.apache.catalina.loader.WebappClassLoader loadClass问题
- 用telnet的方式检验远程服务器的连通性,遇到tomcat与公司内网的缓存问题
- 求教这是SSH2的什么机制
- webservice问题 请大侠帮帮忙~~
- 如何实现给一个会员分配多个权限。。。
- 最简单的问题,求如何去除字符串的空格?类似C#中的字符串的Trim()方法?马上结帖。
- 求助:求一个在JSP/Servlet/JavaBean做的系统中判断用户权限更好的方法
- 求教,调用class文件中的类?
- 求帮忙!(对不起不知该帖子到底贴哪,只好贴两边)
- 帮忙
- spring 表签问题
- 问个技术还要去水源嘛?lucene全文搜索,这样的方案可以不?
或者直接在js中判断调用不同action方法
2、根据用户选中的类别去判断你所要查询表的标识。传到后台后,通过标识判断所要查询的表
可以判断输入的参数来动态拼接SQL语句
就是你可以在下面放几个radio。比如新闻。网页。这个状态来判断执行那个表的查询点查询的时候获取这个radio的值然后拼接传到后台去查询就可以了。这样查询的时候也要考虑到你的js能力了。可以尝试一下。
or biaoti like '%?%'
String sql = "from Emailinfo hs where 1=1";
if (in != null) {
if (in.getEmail() != null && !in.getEmail().equals("")
|| in.getSubject() != null && !in.getSubject().equals("")
|| in.getSendermail() != null && !in.getEmail().equals("")
|| in.getEmailcontent() != null && !in.getEmailcontent().equals("")) {
sql += "and hs.email like '%" + in.getEmail() + "%'"
+ "and hs.subject like'%" + in.getSubject() + "%'"
+ "and hs.sendermail like'%" + in.getSendermail() + "%'"
+ "and hs.emailcontent like'%" + in.getEmailcontent() + "%'";
}
原理跟你差不多,只是可能性能不是很好!
如果 getEmail 不为空,其余全空,那么
sql="*** and email like '%***%' and subject like '%%' and sendermail like '%%' ****"
这样的话,我没运行过,反正感觉是不顺服应该分开来写:
if (in.getEmail() != null && !in.getEmail().equals("")){
sql += "and hs.email like '%" + in.getEmail() + "%'"
}
if(in.getSubject() != null && !in.getSubject().equals("")){
sql += "and hs.subject like'%" + in.getSubject() + "%'"
}
....这样你运行下看看
<input type="hidden" id="id2" value="表明"/>
这两个是一组,就解决问题了,一起传到action中