JDBC preparedSttement 的问题,看了半天没结果,求大神了

qq247890212 2013-03-22 05:52:57
简单的查询用户的问题:
public User findUser(String username,String password){
User user = null;
String sql = "select * from user where username = ? and password = ?";
try {
conn = DBManager.getConn();
pstmt = DBManager.getPrepare(conn, sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
result = DBManager.getResult(pstmt, sql);
while(result.next()){
user = new User();
user.setUserid(result.getInt("id"));
user.setUsername(result.getString("username"));
user.setPassword(result.getString("password"));
user.setPhone(result.getInt("phone"));
user.setAddress(result.getString("address"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

DBManager.close(result);
DBManager.close(stmt);
DBManager.close(conn);
return user;
}


提示的错误是:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? and password = ?' at line 1

小弟比较菜。大家耐心点。
...全文
168 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq247890212 2013-03-23
  • 打赏
  • 举报
回复
貌似2楼赢了,给分!
forgetsam 2013-03-23
  • 打赏
  • 举报
回复
中文问号 。
sugarTan 2013-03-22
  • 打赏
  • 举报
回复
楼上正解 把DBManager.java代码贴出来
中年風雨 2013-03-22
  • 打赏
  • 举报
回复
pstmt = DBManager.getPrepare(conn, sql); pstmt.setString(1, username); pstmt.setString(2, password); result = DBManager.getResult(pstmt, sql); 不清楚你的DBManager是如何封装的,在使用了 conn.prepareStatement()之后, 需要使用pstmt.executeQuery()来执行sql,不能再调用pstmt.executeQuery(sql)来执行, 我估计你可能就是在这里犯错了。检查一下。
  • 打赏
  • 举报
回复
不支持这种类型 改为 String sql = "select * from user where username ="+username+" and password = "+password+""; try { conn = DBManager.getConn(); pstmt = DBManager.getPrepare(conn, sql); result = DBManager.getResult(pstmt, sql);

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧