java用prepareStatement模糊查询问题,用的是sql server,我晕了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java用prepareStatement模糊查询问题,用的是sql server,我晕了相关的知识,希望对你有一定的参考价值。

我用的是sql server 2005(记得),我看过网上介绍的这种方法,都是不行的,大哥们,有其他方法吗?急啊,用prepareStatement模糊查询这么难吗,我要是sql server 的方法
public List queryByLike(String cond) throws Exception
List all = new ArrayList() ;
String sql = "SELECT * FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT LIKE ?" ;
PreparedStatement pstmt = null ;
DataBaseConnection dbc = null ;
dbc = new DataBaseConnection() ;
try

pstmt = dbc.getConnection().prepareStatement(sql) ;
pstmt.setString(1,"%"+cond+"%") ;//这里已经按照网上大部分去做的,我晕了
pstmt.setString(2,"%"+cond+"%") ;
pstmt.setString(3,"%"+cond+"%") ;

编码方面我已经检查了很多遍,没有问题的。
pstmt.setString(1,"'%"+cond+"%'") ;
pstmt.setString(2,"'%"+cond+"%'") ;
pstmt.setString(3,"'%"+cond+"%'") ;

这个不行噢,搜索还是空白的。

String sql = "SELECT * FROM note WHERE title LIKE ? or AUTHOR LIKE ? or CONTENT

pstmt.setString(1,"%"+cond+"%") ;//这里设置的表的字段 及那个(问号)
或者表里没又那些数据
参考技术A pstmt.setString(1,"'%"+cond+"%'") ;
pstmt.setString(2,"'%"+cond+"%'") ;
pstmt.setString(3,"'%"+cond+"%'") ;
================补充
如果你换成了我上面的代码,而且你确定数据库里有你这样查询的记录,你这样查询还是查询不到,那就可能是乱码
参考技术B 提示什么错误?

另外我觉得cond应该是包含三个值吧。因为where 有三个条件
要么需要传三个参数,要么需要将cond拆分成三个值,比如类似:
"1^2^3^"这样的值,那么就把1、2、3分别传给where 的三个条件

那就是你的参数传错了,你把三个参数都传成了cond值,
肯定差不出任何结果
你上面定义的 List all = new ArrayList() ;
很有可能就是用来拆分cond用的。
参考技术C 简单,

JAVA带预编译的模糊查询问题

sql=con.prepareStatement( "SELECT * FROM users where uname LIKE '%?% ' "); sql.setString(1, "华"); 这样写没有用!高手解决!好像直接查 "%?%" 字符串了!

参考技术A PreparedStatement sta = Getconn.GetConnection().
prepareStatement("select admin_name,name from admin_hy where name like ?");

sta.setString(1, "%张%");
参考技术B 你把sql改成LIKE ?setString的时候手动拼成“%华%”呢 参考技术C sql=con.prepareStatement( "SELECT * FROM users where uname LIKE '? ' "); sql.setString(1, "%华%"); 参考技术D 去掉 '%?% ' 的单引号看看

以上是关于java用prepareStatement模糊查询问题,用的是sql server,我晕了的主要内容,如果未能解决你的问题,请参考以下文章

Java里含占位符 支持模糊查询的SQL语句!!!!!

模糊查询时用到prepareStatement在SQL语句里的问号怎么写

java中从数据库中模糊查询问题

ibatis动态多条件组合查询以及模糊查询

PreparedStatement 使用like 模糊查询

java模糊查询问题,代码如下,总是接收不到查询结果,但是如果用精确查找就能接受到查询结果?