在带有ConnectorJ的MySQL中将getGeneratedKeys与批处理插入一起使用

在带有ConnectorJ的MySQL中将getGeneratedKeys与批处理插入一起使用,第1张

在带有Connector / J的MySQL中将getGeneratedKeys与批处理插入一起使用

好吧,我进行了一些测试。使用Connector / J 5.1和MySQL 5.1.42,我观察到以下几点:

  1. Statement.getGeneratedKeys()
    可以预期插入

  2. 如果插入或更新了一行(返回的更新计数数组

    executeBatch()
    返回‘1’或‘2’),
    Statement.getGeneratedKeys()
    则将具有该行的键。如果该行未修改(
    insert ignore
    或者
    insert ... on duplicate key update
    导致无 *** 作,则
    executeBatch()
    返回
    3
    ),则没有键。

  3. 返回的ResultSet

    getGeneratedKeys
    将具有(2)中成功插入的行的条目。失败的插入将不会生成密钥行(更新计数值为
    Statement.EXECUTE_FAILED

  4. 小心使用

    rewriteBatchedStatements
    JDBC连接字符串。如果将其设置为
    true
    ,则任何失败都将导致重写的“块”中的每一行都被视为失败。解决此问题的一种方法是遍历失败的行,然后不进行批处理而重试它们。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5506457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-13
下一篇2022-12-13

发表评论

登录后才能评论

评论列表(0条)

    保存