【问题标题】:set continueOnError property to true through java code通过 java 代码将 continueOnError 属性设置为 true
【发布时间】:2023-03-02 23:04:01
【问题描述】:

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

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

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

continueBatchOnError

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

默认:真

自版本:3.0.3

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

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

【问题讨论】:

    标签: java mysql jdbc


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 2011-09-09
      • 2018-01-25
      • 2018-04-09
      相关资源
      最近更新 更多