java - 无法在 Oracle 数据源连接中将自动提交值设置为 false

标签 java spring oracle

通过 Spring 配置文件注入(inject)的 JdbcTemplate-OracleDataSource 在 Oracle 11g 中插入值。事务是通过 DataSourceTransactionManager 管理的 @Transactional 完成的。

问题1)是如何通过Spring配置文件将autocommit值设置为false。 尝试过:

    <property name="autoCommit" value="false" />

    <property name="defaultAutoCommit" value="false" />

两者都给出错误: org.springframework.beans.NotWritablePropertyException:bean 类 [oracle.jdbc.pool.OracleDataSource] 的无效属性“defaultAutoCommit”

提前致谢。

最佳答案

这些属性将不起作用,因为 OracleDataSource 中没有 setAutoCommit()setDefaultAutoCommit() 方法.

我们可以使用的是 OracleDataSource#setConnectionProperties()即以 Properties 作为参数,我们可以通过添加属性在 OracleDataSource Spring bean 中动态定义:

<property name="connectionProperties">
   <props merge="default">
      <prop key="AutoCommit">false</prop>
   </props>
</property>

关于java - 无法在 Oracle 数据源连接中将自动提交值设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22943674/

相关文章:

spring - 如何在 JavaConfig 中定义 http "security = ' none' ?

sql - 为什么 oracle 优化器对 join by JOIN 和 WHERE 的处理方式不同?

java - JFrame 在 thread.sleep() 之前未更新

java - 理论: How to combine servlets and iphone application

java - 如何在swt组合框中显示最大数量的数据?

java - MyBatis 生成器 setDistinct(true)

java - Spring idref 没有像我想象的那样工作

database - 使用 Oracle11G 在 RHEL 上安装 hadoop

sql - 我需要做一个自定义 Oracle 排序

java - 没有适合 postgres 的驱动程序,即使 Class.forName 有效?