[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 11718] ズームイン Java の Item4 で
高橋(智)です。
昨日のズームインJavaの部、お疲れ様でした。
私が担当したItem4で、Item4に書かれている内容に対して私が提起した
疑問点ですが、議事録がないので書いておきます。
JDBCでSELECTしたResultSetの行数を取得する場面で、以下のように
書いた場合、
-----------------------------------------------------------------
Statement st = ...;
ResultSet rs_count = st.executeQuery("SELECT COUNT(*) from tbl");
int count = rs_count.getInt(1);
ResultSet rs = st.executeQuery("SELECT * from tbl");
for(int i = 0; i < count; i++)
{
...
}
-----------------------------------------------------------------
二つの executeQuery の間に、別のクライアントからtblを変更(行追加とか)
されることがあるので、全体をtransactionで囲むようにする、と紹介されて
いました。でも、transaction の isolation level については、何ら言及
されていません。
実際のところ、isolation level を考慮すべきでしょうか? > みなさま
--
高橋智宏
Java読書会( http://www.javareading.com/bof/ )