通过java代码将continueOnError属性设置为true

时间:2016-03-23 09:50:32

标签: java mysql jdbc

我尝试使用连接器mysql-connector-java-5.1.6-bin.jar更新MySql数据库中的一批记录。根据此answer,驱动程序可能会在一条记录失败的情况下继续运行,否则可能会引发异常。

  

如果一个语句失败,JDBC驱动程序可能会选择尝试执行批处理中的所有语句,或者一旦语句失败,它可能会选择停止在批处理中执行语句。

根据连接器jar的documentation,它表示continueOnError默认为true。

  

continueBatchOnError

     

如果一个语句失败,驱动程序是否应继续处理批处理命令。 JDBC规范允许任何一种方式(默认为' true')。

     

默认值:true

     

自版本:3.0.3

我想根据一些业务逻辑更改此属性值。那么如何在我的实现中(在我的java代码中)将此属性设置为true或false。

注意:我无法更改连接参数。我只获取一个connection对象并执行批量更新。

1 个答案:

答案 0 :(得分:1)

如果连接是com.mysql.jdbc.JDBC4Connection,您可以设置continueBatchOnError标志:

JDBC4Connection mysqlCon = (JDBC4Connection)con;
boolean current = mysqlCon.getContinueBatchOnError();
mysqlCon.setContinueBatchOnError(false);

否则(例如,如果连接由连接池实现包装),您可以使用Connection.unwrap获取JDBC4Connection