为什么 Java 中 ResultSet 的索引以 '1' 开头而不是零开头?



我试图访问ResultSet中的索引0,但我得到了异常

java.sql.SQLException: Column Index out of range, 0 < 1.

代码:

c = db.getConnection();
String prefQuery = "SELECT pLab from practicals where className = ? AND pFacName = ?";
PreparedStatement stPref = c.prepareStatement(prefQuery);
stPref.setString(1, className);
stPref.setString(2, facName);
ResultSet rsPref = stPref.executeQuery();
while (rsPref.next()){
MainClass.show(rsPref.getString(0));
}

ResultSet列getters方法以1开始索引(尽管在Java中索引通常以0开始(

ResultSet接口提供用于从当前行检索列值的getter方法(getBoolean、getLong等(。可以使用列的索引号或列的名称检索值。一般来说,使用列索引会更有效率。列从1 开始编号

您应该更改为

MainClass.show(rsPref.getString(1));

类似于您在setterstPref.setString(1, className);中的索引

相关内容

  • 没有找到相关文章

最新更新