有人能解释一下如何使用 dbcp 准备好的连接池吗? (如果可能的话,使用一些示例代码)。我已经弄清楚如何打开它 - 将 KeyedObjectPoolFactory 传递给 PoolableConnectionFactory。 但是之后具体的prepared statements应该怎么定义呢? 现在我只使用 PoolingDataSource 从池中获取连接。如何使用池中的准备好的语句?
最佳答案
好吧,关于从池中获取连接与获取“非池化”连接,您的代码是否有任何更改:)?我敢打赌你不会。与准备好的语句相同。您的代码不应更改。因此,没有对此有用的代码示例。
您应该阅读有关 JDBC 数据源实现的文档,看看开发人员对池有何看法。没有其他可靠信息来源。
来自 here : 该组件还具有汇集 PreparedStatements 的能力。启用后,将为每个连接创建一个语句池,并且将汇集通过以下方法之一创建的 PreparedStatements:
* public PreparedStatement prepareStatement(String sql)
* public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
因此,您只需继续使用 prepareStatement() 调用,理论上您的 dbcp 将负责池化(即,如果您尝试创建“select * from users u where u.name like :id”,它将尝试先在池中找到这条语句)
关于java - 在 dbcp 中使用 PreparedStatement 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281744/