ResultSet
タイプの a の動作について混乱していますTYPE_SCROLL_SENSITIVE
。
これについての私の理解は次のとおりです。
- 結果セットを返す選択クエリを実行します。最初の行の特定の列の値を出力します。
- 次に を実行する
Thread.sleep(10000)
と、プログラムが 10 秒間停止します。 - プログラムがスリープしている間に、(SQL プロンプトを使用して) DB 内の同じ列を手動で更新します。
- 10 秒後、同じ列の値を結果セットの最初の行に再び出力します。
ステップ 4 では、出力された列の値がステップ 1 で出力された値とは異なることを期待していResultSet
ますSCROLL_TYPE_SENSITIVE
。
ここで何か誤解していますか?
以下は私が使用するコードです。
private void doStuff() throws Exception
{
final String query = "select * from suppliers where sup_id=420";
Statement stmt = this.con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery(query);
rs.next();
System.out.println("City : " + rs.getString("city"));
Thread.sleep(10000); // While this executes, I do a manual update !
System.out.println("City : " + rs.getString("city"));
}