java - Spring boot - 带有返回 id 的 Jdbc 批量插入
问题描述
假设我们有一个表users
id | name
_________
1 | name1
2 | name2
我可以使用以下方式将记录插入用户表并获取插入的 id。
- 尝试使用 SimpleJdbcInsert 插入记录并使用 executeAndReturnId() 方法获取插入的id 。
- 还尝试通过使用返回子句和使用 queryForObject() 来插入和获取插入的id
query = INSERT INTO users(name) VALUES('name3') RETURNING id;
insertedId = jdbcTemplate.queryForObject(query, Long.class);
对于批量插入:
query = INSERT INTO users(name) VALUES(?) RETURNING id;
List<Object[]> objects = new ArrayList<Object[]>(new Object[]{'name3'}, new Object[]{'name4'});
int[] rowsAffected = jdbcTemplate.batchUpdate(query, objects); // this only return affected rows in array
如何使用批量插入获取所有插入的 ID?
也试过已经问过的问题..没有帮助:(
解决方案
尝试使用int[]
而不是int[][]
推荐阅读
- json - 使用 Dialogflow 向 Whatsapp 用户发送图像
- tabulator - 多个组的制表符计算
- css - zone.js 是否与 css 不渲染有关?
- c - 仅在 Solaris 上来自 deflate() 的 Z_STREAM_ERROR
- r - 如何在自托管闪亮应用程序中显示“请稍候”,直到附加软件包
- android - 在 Android 9 中访问图像时出现 SecurityException
- python - 熊猫:给定一个开始和结束日期,为中间的每一天添加一列,然后添加值?
- javascript - 如何正确使用 module.exports?
- etl - 如何保证或检测 flink 中的数据完整性?
- python - 移除 matplotlib 底图周围的矩形边框