繁体   English   中英

无论如何在使用Spring JDBC batchUpdate时获取生成的密钥?

[英]Is there anyway to get the generated keys when using Spring JDBC batchUpdate?

我正在使用JDBC并希望批量插入,但我需要为下一轮插入生成的密钥 - 无论如何要完成此操作吗?

MapSqlParameterSource[] batchArgs ....

DAL.getNamedParameterTemplate().batchUpdate("INSERT INTO...", batchArgs);

谢谢

Spring框架人员试图解决这个问题。 但是当它们显然无法保证解决方案适用于所有JDBC驱动程序时,他们放弃了尝试。 这是因为JDBC规范不保证在批量更新后生成的密钥可用。 JDBC驱动程序可以根据需要随意实现此功能。 在某些情况下,底层数据库可能不会返回生成的密钥,导致驱动程序无法支持此功能。

因此,即使您直接使用JDBC,也需要检查数据库和JDBC驱动程序是否使生成的密钥可用。

我记得我能够通过MySQL 5.0 JDBC驱动程序实现这一点,但从未在我们的生产应用程序中集成解决方案,因为我们也必须支持旧版本的MySQL。

使用db sequence获取下一个主键值并在insert语句中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM