Druidデータベース接続プールの設定方法

アリババが提供するDruidは、性能面でDBCPやC3P0などの既存のデータベース接続プールよりも優れていると評価されています。

基本的な使用法

Druidは他のデータベース接続プールと同様に、DataSourceオブジェクトに対してデータベース接続情報を設定します。以下に2つの設定方法を示します。

1. Javaコードでの設定

ConnectionPool cp = new ConnectionPool();
cp.setDriverClassName("com.mysql.cj.jdbc.Driver");
cp.setUser("adminUser");
cp.setPassword("securePass");
cp.setUrl("jdbc:mysql://localhost:3306/sampleDB");
cp.setInitialCapacity(7);
cp.setMinimumIdle(2);
cp.setMaximumActive(15); // モニタリング機能の有効化
cp.setMonitorType("monitor"); // MySQL用設定
cp.setPrepareStatements(false);

2. Springフレームワークを利用した設定

<bean id="connPool" class="com.alibaba.druid.pool.DruidDataSource" init-method="initialize" destroy-method="shutdown">
    <!-- URL、ユーザー名、パスワードの設定 -->
    <property name="url" value="${db_url}" />
    <property name="user" value="${db_user}" />
    <property name="password" value="${db_password}" />

    <!-- 初期サイズ、最小アイドル数、最大アクティブ数の設定 -->
    <property name="initialSize" value="3" />
    <property name="minIdle" value="2" />
    <property name="maxActive" value="30" />

    <!-- 接続待機時間の設定(ミリ秒)-->
    <property name="maxWaitTime" value="90000" />

    <!-- 空き接続チェック間隔(ミリ秒)-->
    <property name="idleCheckInterval" value="80000" />

    <!-- 最小生存時間(ミリ秒)-->
    <property name="minSurvivalTime" value="400000" />

    <property name="validationQuery" value="SELECT 1" />
    <property name="testWhileIdle" value="true" />
    <property name="testOnBorrow" value="false" />
    <property name="testOnReturn" value="false" />

    <!-- PSCacheの設定 -->
    <property name="usePSCache" value="true" />
    <property name="maxPSCachePerConnection" value="25" />

    <!-- モニタリングフィルターの設定 -->
    <property name="filters" value="stat" />
</bean>

Webアプリケーションでモニタリング統計機能を使用するには、web.xmlに以下のServlet宣言を追加します:

<servlet>
    <servlet-name>StatViewServlet</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>StatViewServlet</servlet-name>
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

プロジェクトの詳細情報やFAQについては、公式GitHubリポジトリを参照してください:Druid GitHub Wiki

タグ: Druid JDBC データベース接続プール Spring Framework

5月27日 21:35 投稿