次のコードがあります。
try(Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","VENIVIDIVICI");
Statement st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.executeQuery("SELECT * FROM example184"))
{
rs.absolute(2);
rs.absolute(1);
rs.beforeFirst();
while (rs.next())
{
System.out.println(rs.getString("iD"));
}
while(rs.previous())
{
System.out.println(rs.getString("Id"));
}
}
catch(SQLException sql ){System.out.println(sql);}
}
のみであるため、SQLException を返す必要がResultSet.TYPE_FORWARD_ONLY
あります。代わりに、例外をスローすることなく正常に動作します。
更新:以下の応答で Aleroot が示唆したように、次の変更を試みました。
try(Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","VENIVIDIVICI");
Statement st = con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.executeQuery("SELECT * FROM example184"))
{
st.setFetchSize(Integer.MIN_VALUE);
rs.afterLast();
while (rs.previous())
{
System.out.println(rs.getString("iD"));
}
}
catch(SQLException sql ){System.out.println(sql);}
}
}
成功しなくても、コンパイルして正しく実行できます。
ありがとうございます