簡體   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