【发布时间】:2014-08-07 13:43:13
【问题描述】:
我对编程很陌生,并且在使用 jdbc 从 SQL 查询中获取特定值时遇到问题。我想从 'session_id' 列的最后一行获取值,我知道有 13 行(正在初始化 int 'position'),我希望 'resultSet.getInt(13)' 会得到值(它是一个 int)从列的最后一行开始。
try {
String sql = "SELECT session_id FROM log_table ORDER BY session_id DESC";
stmt = conn.createStatement();
ResultSet resultSet = stmt.executeQuery(sql);
while (resultSet.next()) {
if (resultSet.last()) {
int position = resultSet.getRow();
latestSessionID = resultSet.getInt(position);
}
System.out.println("Latest session_id : "+latestSessionID);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是代码返回以下异常
Connected to driver // my own trace
Connected to database // my own trace
java.sql.SQLException: Column Index out of range, 13 > 1.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:997)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:983)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:928)
at com.mysql.jdbc.ResultSetImpl.checkColumnBounds(ResultSetImpl.java:826)
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2710)
at org.Database.JDBC.checkDatabase(JDBC.java:113)
at org.Database.JDBC.main(JDBC.java:166)
我已经尝试了所有常用的选项,之前关于堆栈溢出的任何问题都无法回答这个问题。有谁知道解决这个问题的最佳方法?谢谢!
【问题讨论】:
标签: java sql jdbc indexing resultset