public User findUserByNameAndPassworf(String name, String password) {
try {
conn=ConnectionFactory.getConnection();
System.out.println(conn);
StringBuffer sql=new StringBuffer();
sql.append("select id,name,password from tb_user");
sql.append("where name=? and password=?");
    pstm=conn.prepareStatement(sql.toString());
    pstm.setString(1, name);
    pstm.setString(2, password); 
    rs=pstm.executeQuery();
    User user=null;
    if(rs.next())
    {
        user= new User();
     user.setId(rs.getInt("id"));
     user.setName(rs.getString("name"));
     user.setPassword(rs.getString("password"));
     System.out.println(user.getPassword());
    
    }
    return user;
} catch (Exception e) {

e.printStackTrace();
return null;
}finally{
ConnectionFactory.close(conn, pstm, rs);
}
}
注释掉sql.append("where name=? and password=?");
    pstm.setString(1, name);
    pstm.setString(2, password); 
     异常SQL 命令未正确结束

解决方案 »

  1.   

    sql.append("select id,name,password from tb_user  ");最后面敲个空格看看
      

  2.   

    如果楼主意思是注释掉那3行就正确,说明是空格的问题。sql写在引号中的时候,最好习惯性地前后都加空格
      

  3.   

    應該是空格的問題, 在多個字串連接成一個sql時一定要注意的
      

  4.   

    sql.append("where name=? and password=?");
    改成
    sql.append(" where name=? and password=?");