java中的PreparedStatement.addBatch有啥限制吗?

Posted

技术标签:

【中文标题】java中的PreparedStatement.addBatch有啥限制吗?【英文标题】:PreparedStatement.addBatch in java has any restrictions?java中的PreparedStatement.addBatch有什么限制吗? 【发布时间】:2011-05-22 11:34:32 【问题描述】:

我正在尝试优化将大量结果插入远程 mysql 数据库的过程。我为此使用了简单的 jdbc。

目前我正在用 PreparedStatement 替换退出语句,并用 addBatch/executeBatch 方法执行方法。有谁知道批处理执行的限制是什么?在执行之前我可以添加多少批次以确保流程不会失败?查询不是特殊查询,它们没有 blob 或其他大字段。

【问题讨论】:

【参考方案1】:

@BalusC 一针见血。如果您使用的是 MySQL,请使用最新的驱动程序将 rewriteBatchedStatements=true 添加到您的连接字符串中,以使 statement.addBatch() 实际创建批量插入。

关于 MySQL JDBC 性能的精彩介绍: http://assets.en.oreilly.com/1/event/21/Connector_J%20Performance%20Gems%20Presentation.pdf

【讨论】:

以上是关于java中的PreparedStatement.addBatch有啥限制吗?的主要内容,如果未能解决你的问题,请参考以下文章

mySQL在java中的应用

Java中的ArrayList 重要方法补充

Java中的Math函数

使用java 8中的forEach(..)而不是java 5中的forEach循环的任何优势[重复]

Java中的数据类型

java - 为啥在java中的poll方法之后PriorityQueue中的值会发生变化? [复制]