用prepareStatement模糊查询问题,我晕了
我用的是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+"%") ;
pstmt的sql语句中的?号与setString方法的第一个参数1,2,3一一对应,第二个参数是字符串。
PreparedStatement使用没有错误
------解决方案--------------------这种做法是没错的,我今天也刚好做到的这个,查询成功了,代码也和你差不多的
ps.setString(1, "%"+s_keyword+"%");//句子就是这样写的,
我反而是怀疑你的sql语句写错了,我看见你的那个select * 怪怪的,会不会是输入是时变成中文的输入
,你试试先将你的sql语句填上参数在你的数据库那边运行一下,确认sql语句无误再放到程序里面,有时候经常是出错在一些容易忽略的细节上啊  
------解决方案--------------------试:
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);
 // ...