簡體   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