通过 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/