2
public void XXX(){
    Connection conn = ~~;        
    CallableStatement cstmt = conn.prepareCall("{call XXX");
    cstmt.executeUpdate();
    cstmt.close();
}

上記のようなメソッドで、CallableStatement が close() 内に 1 行ずつ記述されているすべてのメソッド。自動操作で各メソッドに close() を行う方法はありませんか?

java5やjava6で実現できる方法はありますか?

私は日本人なので、より良い表現を教えてください。

4

2 に答える 2

1

データベース オブジェクトのクローズは、例外が発生したかどうかに関係なくクローズされるように、常に finally ブロックで実行する必要があります。

Connection c = null;
CallableStatement cstmt = null;

try {
    conn = getAConnectionSomewhere();  
    cstmt = conn.prepareCall("{call XXX");
    cstmt.executeUpdate();
} finally {
    IOUtils.close(cstmt);
    IOUtils.close(conn);
}

ここでは、commons-io の IOUtils を自由に使用できます。

于 2011-02-01T05:13:06.850 に答える