データベースへの接続を必要とする bukkit プラグイン (minecraft) があります。
データベース接続は常に開いたままにする必要がありますか?それとも必要に応じて開いたり閉じたりする必要がありますか?
データベース接続は、必要なときにのみ開き、必要なすべてのジョブを実行した後に閉じる必要があります。コードサンプル:
Java 7 より前:
Connection con = null;
try {
con = ... //retrieve the database connection
//do your work...
} catch (SQLException e) {
//handle the exception
} finally {
try {
if (con != null) {
con.close();
}
} catch (SQLException shouldNotHandleMe) {
//...
}
}
Java7:
try (Connection con = ...) {
} catch (SQLException e) {
}
//no need to call Connection#close since now Connection interface extends Autocloseable
ただし、データベース接続を手動で開くのはコストがかかりすぎるため、インターフェースを備えた Java で表現されたデータベース接続プールDataSource
を使用することを強くお勧めします。これにより、物理的なデータベース接続が処理されます。これを閉じる(つまり、 を呼び出すConnection#close
) と、物理的なデータベース接続は SLEEP モードになり、開いたままになります。
関連 Q/A:
データベース接続プーリングを処理するためのいくつかのツール:
Connection は、必要な場合にのみ開く必要があります。実際に必要になる前に開いていると、接続プールからアクティブな接続が 1 つ減ります。そのため、最終的にはアプリケーションのユーザーに影響を与えます。
そのため、必要な場合にのみ接続を開き、プロセスの完了後に閉じることを常にお勧めします。
アプリケーションで例外が発生した場合でも、接続が確実に閉じられるように、常にfinallyブロック内に接続を閉じるロジックを配置してみてください
finally
{
connection.close()
}