1
我有以下代碼:ResultSet.TYPE_FORWARD_ONLY它實際上是如何工作的?
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
,而不是它工作正常,沒有拋出任何異常。
UPDATE:作爲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);}
}
}
沒有成功,但它仍然編譯和運行正常。
感謝, 事實上ITIS
@我已經嘗試了它們兩個,它仍然有效,我正在使用代碼更新問題 –
您正在使用哪種版本的JDBC驅動程序? – aleroot
JDBC 4.1 mysql驅動程序5.1 –