JDBC中,ResultSet里面方法提供了一些可移动指针的方法,例如以下几个方法:
boolean absolute(int row) //将指针移动到此 ResultSet 对象的给定行编号
void afterLast() //将指针移动到此 ResultSet 对象的末尾,正好位于最后一行之后
void beforeFirst() //将指针移动到此 ResultSet 对象的开头,正好位于第一行之前
boolean first() //将指针移动到此 ResultSet 对象的第一行
当我利用JDBC中查询数据库后,假如需要做判断校验,是否存在值时的操作:
if(!res.next()) {//只要调用了next()方法,指针就会移动一次
dto.setMsg("密码不正确!");
dto.setCode(Result.FAILURE.getCode());
dto.setCount(0);
return dto;
}else {
user = new User.Builder().builder();
res.beforeFirst();//这里需要将指针移回到第一行之前
while(res.next()){
user.setUsername(res.getString(2));
}
}
所以,什么时候需要重新移动指针操作,根据自己需求。