ホームページ > データベース > mysql チュートリアル > 私の BasicDataSource 実装は本当に JDBC 接続プーリングを使用していますか?

私の BasicDataSource 実装は本当に JDBC 接続プーリングを使用していますか?

Susan Sarandon
リリース: 2024-11-29 11:41:10
オリジナル
704 人が閲覧しました

Is My BasicDataSource Implementation Truly Using JDBC Connection Pooling?

JDBC 接続プーリングを使用していますか?

質問:

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート