当前位置: 首页 > 面试题库 >

在dbcp中使用PreparedStatement池

方增
2023-03-14
问题内容

有人可以解释如何使用完全准备好的使用dbcp的连接池吗?(如果可能,请提供一些示例代码)。我已经弄清楚了如何打开它-
将KeyedObjectPoolFactory传递给PoolableConnectionFactory。但是,那之后如何定义特定的准备好的语句呢?现在,我仅使用PoolingDataSource从池中获取连接。如何使用池中准备好的语句?


问题答案:

在谈论从池中获得连接与获得“非池中”连接之间,您的代码是否有任何更改:)?我敢打赌你不会。与准备好的语句相同。您的代码不应更改。因此,对此没有有用的代码示例。

您应该阅读有关JDBC数据源实现的文档,并了解开发人员对池的评价。没有其他可靠信息来源。

从这里开始:该组件还具有池PreparedStatements的功能。启用后,将为每个Connection创建一个语句池,并且将合并由以下方法之一创建的PreparedStatement:

* 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”,它将尝试查找此语句)首先在游泳池里)



 类似资料:
  • 问题内容: 为了使我们的代码更加标准,我们被要求更改将SQL变量硬编码为预处理语句的所有位置,然后绑定这些变量。 但是我遇到了问题。 这是代码: 我在执行SQL时收到此错误: 我应该改为使用? 问题答案: Using 使用 如果您的表的列类型为: 该方法接收到一个字符串,该字符串表示格式为日期的日期。例如: 假设您有一个type类型的变量,则可以这样进行转换: 当前的 如果要插入当前日期: Usi

  • 为了使我们的代码更加标准,我们被要求将所有我们将SQL变量硬编码为准备好的语句的地方改为绑定变量。

  • 问题内容: 为了使我们的代码更加标准,我们被要求更改将SQL变量硬编码为预处理语句的所有位置,然后绑定变量。 但是我遇到了问题。 这是代码: 执行SQL时出现此错误: 我应该改为使用? 问题答案: 使用 java.sql.Date 如果表中的列类型为DATE: 该方法接收到一个字符串,该字符串代表格式的日期。例如: 假设你有一个类型的变量,则可以这样进行转换: 当前 如果要插入当前日期: 使用 j

  • 问题内容: 我正在尝试在mysql数据库中插入阿拉伯字母,但是只存储“ ????”。我正在使用DBCP与mysql数据库连接,这是数据源: 如何在DBCP配置中设置UTF-8编码或如何使用(useUnicode = yes characterEncoding = UTF-8)? 问题答案: 根据DBCP文档,您需要使用带有value 的参数,因此在这种情况下,您应该使用类似以下内容的方法: (注意

  • 问题内容: 经过一会儿(几个小时)后,我们从DBCP获得了CommunicationsException。错误消息(位于“异常”中)在此问题的末尾- 但我看不到任何配置文件中定义的wait_timeout。(我们应该看哪里?在tomcat / conf目录之外的某个地方?)。 其次,如异常所建议,将“ Connector / J连接属性’autoReconnect = true’”放在哪里?这是在

  • 问题内容: 我正在尝试执行一个查询,该查询返回一个名和姓串联在一起的学生,该名与搜索键参数相等。 为此,我在班级中管理与班级数据库相关的任何事情。 执行查询时,出现以下错误: 怎么了?我已经检查过这是正确的使用方法 。 并且是在MySQL数据库中。 问题答案: 您的问题是您准备的陈述 正确,但是当您尝试执行PreparedStatement时,将再次提供该字符串: 那是不对的。您已经准备好该语句,