繁体   English   中英

Spring JDBCTemplate更新语句

[英]Spring JDBCTemplate update statement

在Spring中有一个像下面这样配置的数据源。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
      destroy-method="close">
    <property name="driverClassName" value="${prop_jdbc.driverClassName}"/>
    <property name="url" value="${prop_jdbc.url}"/>
    <property name="username" value="${prop_jdbc.username}"/>
    <property name="password" value="${prop_jdbc.password}"/>
    <property name="initialSize" value="2"/>
    <property name="maxActive" value="5"/>
    <property name="maxIdle" value="2"/>
    <property name="poolPreparedStatements" value="true"/>
    <property name="maxOpenPreparedStatements" value="-1"/>
    <!-- property name="defaultAutoCommit">
       <value>false</value>
    </property-->
</bean>   

现在,我首先使用从上面的dataSource创建的jdbcTemplate进行DROP TABLE,然后在下一条语句中,我再次创建相同的TABLE,最后尝试立即在第三条语句中将其DROP删除。

jdbcTemplate.update( dropSql,new Object[] { });
jdbcTemplate.update( createSql,new Object[] { });
jdbcTemplate.update( dropSql,new Object[] { });

@Brian评论后编辑

在第一个语句之后,Table被立即删除,第二个语句也立即创建了它,但是第二次,DROP没有发生..也没有错误。

JdbcTemplate是否立即或定期执行DROP,因为这很难理解,使用相同的数据源,为什么第一次发生在前两行时第二次DROP不发生。

DDL-例如创建和删除不是事务性的。 请分享实际执行的ddl。 我建议在没有实际的SQL来检查的情况下,在jdbcTemplate上使用execute方法而不是update方法。

您正在做什么,以便在代码每次失败尝试之间删除表?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM