使用Connector/J,我想批量插入主表,然后批量插入明细表(PreparedStatement.executeBatch()
两者都适用)。我在网上没有找到太多信息,所以我正在寻找有这方面经验的人的任何反馈。
我可以
Statement.getGeneratedKeys()
用来获取主表中新插入行的 ID,以便我可以将它们用作详细插入中的外键吗?如果不是每个查询都导致插入(例如,有一个
insert ignore
或insert ... on duplicate key update
查询)怎么办?我会Statement.getGeneratedKeys()
为每条语句排入一行,还是只为新的?Statement.getGeneratedKeys()
插入的主记录之一出现错误并 在连接字符串continueBatchOnError
中设置为什么会 返回什么?true
Connector/J 版本 5.0.x 与 5.5.x 之间的相关行为是否有任何差异?MySQL 5.0 和 5.1 怎么样?
还有其他我应该注意的问题或陷阱吗?
有一个更好的方法吗?