MyBatis 实现 List 循环新增并返回自增 ID 数组的方法揭秘
在MyBatis中,可以使用`useGeneratedKeys`和`keyProperty`属性来实现返回自增的id的数组。 首先,假设你有一个实体类 `MyEntity`,其中拥有自增的 `id` 属性。 在使用 `insert` 语句插入数据时,可以设置 `useGeneratedKeys` 为 `true`,表示使用数据库的自增机制生成 `id`,并通过 `keyProperty` 指定将生成的自增 `id` 赋值给实体类的哪个属性。 以下是一个示例配置: ```xml <insert id="insertMyEntities" useGeneratedKeys="true" keyProperty="id"> INSERT INTO my_table (name) VALUES <foreach collection="myEntities" item="item" index="index" separator=","> (#{item.name}) </foreach> </insert> ``` 在上述示例中,`myEntities` 是一个名为 `List<MyEntity>` 的参数,表示要批量插入的数据。`keyProperty="id"` 指示将生成的自增 `id` 的值赋给 `MyEntity` 对象的 `id` 属性。 在执行插入后,可以通过获取每个插入操作后返回的自增 `id`,将它们存入一个数组。 如果使用的是 MyBatis 的 `Mapper` 接口,可以在方法中返回一个包含自增 `id` 的数组,具体代码如下: ```java public interface MyEntityMapper { int insertMyEntities(List<MyEntity> myEntities); } ``` ```java // 在调用接口方法时,获取自增id的数组 int[] ids = myEntityMapper.insertMyEntities(myEntities); ``` 需要注意的是,返回的数组的长度和插入操作的次数保持一致,数组中的每个元素对应一个插入操作所生成的自增id。 ######[AI写代码神器 | 946点数解答 | 2024-04-25 19:49:06]
- C++ 实现超清晰大学管理系统:涵盖学生、职工、教师、助教全角色(讯飞星火 | 1014点数解答 | 2024-05-29 18:22:53)362
- C++实现:包含学生、职工、教师和助教的大学管理系统(GPT | 1431点数解答 | 2024-05-29 18:23:32)359
- JavaScript 实现数组元素 src 转换:从原始数组到目标数组的巧妙处理(字节豆包 | 680点数解答 | 2025-08-04 17:09:03)208
- Java 代码示例:老板让组长统计在线课程数量及代码优化(字节豆包 | 182点数解答 | 2024-10-10 16:23:27)336
- Java代码修正:老板让统计在线课程数量的正确实现(阿里通义 | 400点数解答 | 2024-10-10 16:28:11)277
- HTML 任务列表代码:语法纠错、优化建议及额外逻辑要点(字节豆包 | 185点数解答 | 2025-01-01 17:54:37)255
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)345
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)312
- “评荐”技能代码深度解析与游戏技能系统开发指南(DeepSeek | 1700点数解答 | 2026-03-13 10:36:38)20
- “博览”技能JS代码深度解析与游戏开发实战指南(DeepSeek | 1720点数解答 | 2026-03-24 14:43:14)20
- 2048 游戏 HTML 代码框架解析与优化建议(字节豆包 | 138点数解答 | 2025-03-05 15:45:36)392
- 2048 游戏 HTML 框架搭建,后续开发建议大揭秘!(字节豆包 | 117点数解答 | 2025-03-11 00:06:25)343