5.mybatis批量操作
批量操作也是我们实际开发经常用到的操作,比如批量插入数据,批量更新数据,批量删除,批量查询(批量查询在查询那篇已经讲过了)。好,那么就进入mybatis的批量世界。
1.批量插入
批量插入呢,那么插入的参数肯定是一个集合,那么我们在mapper接口中新建一个方法,还是以爸爸表为例
/**
* 批量插入,批量的话,根据之前讲的,要加@Param注解
* @param fathers
*/
void batchInsert(@Param("fathers") List<Father> fathers);
主要还是看xml文件的语法怎么写
<insert id="batchInsert">
insert into father (username,age)
values
<!--
这个就是对你传入的集合进行遍历,collection 你的参数名称,对应@Param("fathers")
item: 遍历出来的每个father对象,separator:每个循环后拼接的符号,这里肯定是逗号。
来看看我们MySQL的批量插入语法就知道了:
INSERT INTO table_name (column1, column2, column3, …)
VALUES (value1, value2, value3, …),
(value1, value2, value3, …),
-->
<foreach collection="fathers" item="item" separator=",">
(#{item.username},#{item.age})
</foreach>
</insert>
别忘了,大部分情况下,我们要获取插入的id,那么只要在xml中配置如下参数
<!-- keyProperty 表示插入后的id映射到集合中的类的哪个字段 -->
<insert id="batchInsert" useGeneratedKeys="true" keyProperty="fathers.id">
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构