プールの PreparedStatements を使用するように dbcp を設定する方法を知りたいです。接続プールが機能しているようですが、準備されたステートメントの例があまり見つかりません。PreparedStatement プールの使用に関する関連する質問がありますが、最初に設定する詳細については省略されています。どうやら aを に渡す必要があるようですが、どの実装を使用する必要があるのか 、コンストラクターが必要とするオブジェクトを作成する方法がまったくわかりません。KeyedObjectPoolFactory
PoolableConnectionFactory
現在、接続プールを設定している方法は次のとおりです。
private PoolingDataSource setupDataSource() {
ConnectionFactory connection_factory = new ConnectionFactoryImpl();
ObjectPool connection_pool = new GenericObjectPool();
PoolableConnectionFactory poolable_connection_factory = new PoolableConnectionFactory(connection_factory, connection_pool, null, "select 1", false, true);
PoolingDataSource data_source = new PoolingDataSource(connection_pool);
return data_source;
}
private static class ConnectionFactoryImpl implements ConnectionFactory {
private Properties connection_properties = new Properties();
public ConnectionFactoryImpl() {
connection_properties.put("user", USER);
connection_properties.put("password", PASSWORD);
connection_properties.put("zeroDateTimeBehavior", "convertToNull");
connection_properties.put("jdbcCompliantTruncation", "false");
}
@Override
public Connection createConnection() throws SQLException {
return DriverManager.getConnection("jdbc:mysql://" + SERVER + "/" + DEFAULT_DB, connection_properties);
}
}
これは、プリペアド ステートメントのプーリングを制御する の 3 番目のパラメーターPoolableConnectionFactory
ですが、そこで何を使用すればよいかわかりません。