Java アプリケーションで BasicDataSource を使用して接続クラスを実装しました。これは真の接続プールとみなされますか?
はい、Apache Commons DBCP のコンポーネントである BasicDataSource で接続プールを使用しています。ただし、getConnection() を呼び出すたびに新しいプールが作成されるため、現在の実装では誤って複数の接続プールを作成しています。
適切な接続プールを確立するには、通常、接続プールを 1 回だけ作成する必要があります。アプリケーションの起動中。このプールは、アプリケーションの実行全体を通じて接続の取得と解放に使用する必要があります。
接続プーリングを効果的に使用するコードの改訂版は次のとおりです:
public final class Database { private static final BasicDataSource dataSource = new BasicDataSource(); static { dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/data"); dataSource.setUsername("USERNAME"); dataSource.setPassword("PASSWORD"); } private Database() { // } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }
アプリケーション コードでは、try-with-resources ブロックを使用して、次のことを確認する必要があります。接続、ステートメント、結果セットなどのリソースは、例外が発生した場合でも適切に閉じられます:
try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { // ... }
これらのリビジョンを実装することで、真の接続プーリングを確立します。 Java アプリケーション。複数の接続作成によるオーバーヘッドを回避してパフォーマンスを最適化します。
以上が私の BasicDataSource 実装は本当に JDBC 接続プーリングを使用していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。