查询用户的操作函数:
public Member findName(String mid,String password) throws SQLException{
Connection conn = OracleJDBC.getConnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "select * from userTable where mid=? and password=?";
try{
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, mid);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
System.out.println("rs: "+rs.next());
while(rs.next()){
System.out.println("当前登陆用户:"+rs.getString(1));
Member member = new Member();
member.setMid(rs.getString(1));
member.setPassword(rs.getString(2));
member.setName(rs.getString(3));
member.setAddress(rs.getString(4));
member.setTelephone(rs.getLong(5));
member.setZipcode(rs.getInt(6));
return member;
}
}catch(Exception e){
e.printStackTrace();
}finally{
pstmt.close();
conn.close();
}
return null;
}
rs.next() 在控制台输出: true. (上面函数有写输出语句)
但是在函数中while(rs.next())之后的语句不执行,最后返回了个null值。
请问有能解决这问题的吗? 机子也重启过。而且之前可以运行通过。
------解决方案--------------------
第一个rs.next()的时候就已经想下指了一个,因为只有一条记录嘛,你再用一次next,那就会指向后面一条,那肯定就是空了呀。