spring 3.1:jdbcTemplate auto commit to false。

时间:2012-05-24 22:49:22

标签: transactions jdbctemplate autocommit

嗨,他们是一种在spring jdbctemplate中将autocommit设置为false的方法。

事情不是事务(它们是回滚选项),我希望在事务结束时提交查询。

所以而不是

插入 - >提交 - >回滚。

我想要插入 - >失败 - > (没有提交)。

2 个答案:

答案 0 :(得分:5)

我不明白你的整个问题,但我可以回答第一部分:有没有办法在spring jdbctemplate中将autocommit设置为false?

自动提交配置通常在连接本身上设置。 ConnectionDatasource创建。由于JdbcTemplate没有选择在其请求数据源的连接中手动禁用自动提交,因此实现此目的的方法是使用Datasource创建与autocommit设置为的连接默认情况下为false

使用apache commons BasicDataSource的示例配置实现了:

<bean id="database" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource">
        <bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            ...
            <property name="defaultAutoCommit" value="false" />
            ...
        </bean>
    </property>
</bean>

答案 1 :(得分:0)

我试图抓住你的问题,并且有一些想法可以解决它们。 在autocommit false中将jdbctemplate设置为defaultAutoCommit的方式:

  1. DataSource的{​​{1}}属性设置为false
  2. 您可以通过编写代码进行提交或回滚,如下所示:

    jdbcTemplate.getDataSource().getConnection.commit();
    jdbcTemplate.getDataSource().getConnection.rollback();