public UserBean authenticate(String username,String password){
PostGresDAO pg=new PostGresDAO(); //creates new connection
Connection conn=pg.getConnecion(); //return connection object
PreparedStatement ps;
ResultSet rs;
String query="select password,name from scg_users where username=?";
UserBean ub=null;
boolean authenticated=false;
try{
ps=conn.prepareStatement(query);
ps.setString(1, username);
rs=ps.executeQuery();
if(rs!=null){
authenticated=password.equals(rs.getString(1)); //exception raised here
if(authenticated){
ub=new UserBean();
ub.setUser(rs.getString(2));
ub.setUsername(username);
}
}
}
catch(SQLException e){
e.printStackTrace();
}
return ub;
}
このコードを使用してユーザーを認証しています。ユーザー名とパスワードはリクエストパラメータから抽出され、認証のためにこのメソッドに渡されます。しかし、それはスローします:
org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.
ご意見をお聞かせください。