java中数据库模糊查询代码怎么报错了,郁闷中....

来源:百度知道 编辑:UC知道 时间:2024/06/08 04:06:49
下面这段代码怎么就不能查询出记录
------------
public List queryByLike(String cond) throws Exception{
List all = new ArrayList();
String sql = "select * from users where name like ? or password like ?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1,"'%sa%'");
pstmt.setString(2,"'%sa%'");
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
User user = new User();
user.setId(rs.getString(1));
user.setName(rs.getString(2));
user.setPassword(rs.getString(3));
all.add(user);
}
rs.close();
pstmt.close();
}
catch(Exception ex){
ex.printStackTrace();
}
finally{
dbc.closeConnection();
}
return all;
}
--------------

我知道了
pstmt.setString(0,"'%sa%'");
pstmt.setString(1,"'%sa%'");
这样写你看看

String sql = "select * from users where name like ? or password like ?";
??????????这是什么意思? ?在这里干吗的?

pstmt.setString(1,"%sa%");
pstmt.setString(2,"%sa%");
把字符串中的''去掉
看看这样行不行

1