データベースのコミットとロールバックの制御・Javaの小技、サンプル、ニュースなどを紹介していきます。みんなで参考にしてください。

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

データベースのコミットとロールバックの制御


SQLを実行した結果によって、データベースの変更結果をコミットしたり、ロールバックしたり
するサンプルです。
以下のような一行のSQLの実行では意味がありませんが、複数行SQLを実行して、成功した場合だ
けデータベースを更新したい場合には以下のようにコミットとロールバックを使い分けます。


Connection con = データベースの接続は前の記事を参照してください。
boolean auto = false;
//まずはオートコミットを向こうにしておく
try {
auto = con.getAutoCommit();
con.setAutoCommit(false);
}
catch (SQLException e) {
e.printStackTrace();
}
//SQLの実行結果
boolean ret = false;
try {
Statement state = con.createStatement();
String sql = "inesrt into testtable values(1, '名前')";
int n = state.executeUpdate(sql);
if (n > 0)
ret = true;
state.close();
//コミットもしくはロールバックを実行する
commit(con, auto, ret);
}
catch (SQLException e) {
//失敗した場合はロールバックする
commit(con, auto, false);
e.printStackTrace();
}



以下のようにコミットとロールバックの制御は別関数にするとすっきりします。



public static void commit(Connection con, boolean auto, boolean ret)
{
try {
if (auto) {
if(ret == true)
con.commit();
else
con.rollback();
con.setAutoCommit(auto);
}
}
catch (SQLException e) {
e.printStackTrace();
}

}

スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。