アリババが提供する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