バックグラウンド
多くの Prepared/Callable Statements と ResultSet を使用して閉じているため、finally セクションでクリーンアップするグローバルな静的メソッドを作成しました。
ほとんどの場合、それらを null にできないことは明らかです。すぐに閉じるのではなく、null チェックを追加することを確認したいだけです。
これまでのところ、このメソッドを使用してまったく問題はありませんでしたが、このスレッドは安全ですか? そうでない場合、単純な静的メソッドの代わりに同期メソッドを使用する必要がありますか?
使用法その他のスレッド クラス
private PreparedStatement psUpdate = null;
try {....}
catch(Exception e) {...}
finally
{
Utils.NullCheckClose(this.psUpdate, this.getProcName());
}
宣言ユーティリティ クラス
public static void NullCheckClose(PreparedStatement temp, String threadname)
{
try
{
if(temp != null)
temp.close();
}
catch(Exception msg)
{
Logger.erLog(msg, threadname);
}
finally
{
temp = null;
}
}
public static void NullCheckClose(CallableStatement temp, String threadname)
{
try
{
if(temp != null)
temp.close();
}
catch(Exception msg)
{
Logger.erLog(msg, threadname);
}
finally
{
temp = null;
}
}
public static void NullCheckClose(ResultSet temp, String threadname)
{
try
{
if(temp != null)
temp.close();
}
catch(Exception msg)
{
Logger.erLog(msg, threadname);
}
finally
{
temp = null;
}
}