今天在调试程序的时候发现,使用如下代码发现程序报错
try {
conn = DBConnectUtil.open("data1");
st = conn.prepareStatement(sql);
//st.setString(1,userNames);
rs = st.executeQuery();
while (rs.next()){
FrontUser user = new FrontUser();
user.setUserName(rs.getString("uname"));
user.setUserType(rs.getInt("u_type"));
userList.add(user);
}
} catch (Exception e) {
Constants.sqlErrNum++;//错误sql数加一
errorLog.error("select uname,u_type from t_base_user error:", e);
}finally{
DBConnectUtil.close(rs, st, conn);
}
After end of result set 网上看无非就是两个原因
1.resultSet 已经被关闭
2.resultSet 已经到末尾了
仔细看了一下代码,发现这两个原因我都没有犯错,那究竟是什么原因了,仔细一看原来是我debugger的时候调用了一下rs.next()导致的,底端错误
同学们注意啦,debugger的时候会执行一次你监控的代码,所以如果是类似取字符流的,debugger是会改变当前指针位置的