异常:java.sql.SQLException: Before start of result set
解决方法:使用rs.getString();前一定要加上rs.next();
例如:
conn = DriverManager.getConnection(url, user, password);
PreparedStatement preSql; // 预处理语句
ResultSet rs = null;
String sqlStr = "select * from table";
try {
preSql = conn.prepareStatement(sqlStr);
rs = preSql.executeQuery();
// 方法一
// rs.next() 返回的是布尔值,并且运行一次next() rs指向下一行
if (rs.next()) {
String id = rs.getString("id"); // 或者 String id = rs.getString(1); 用以获取第一列的数据
}
// 方法二
while (rs.next()) {
String id = rs.getString("id"); // 或者 String id = rs.getString(1); 用以获取第一列的数据
}
} catch (SQLexception e) {
e.printStackTrace();
}
原因:ResultSet对象代表SQL语句执行的结果集,维护指向其当前数据行的光标。每调用一次next()方法,光标向下移动一行。最初它位于第一行之前,因此第一次调用next()应把光标置于第一行上,使它成为当前行。随着每次调用next()将导致光标向下移动一行。在ResultSe对象及其t父辈Statement对象关闭之前,光标一直保持有效。
参考资料:java.sql.SQLException: Before start of result set异常及处理办法_Famiglistimott的博客-CSDN博客