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">

 

posted @   诸葛匹夫  阅读(53)  评论(0编辑  收藏  举报
编辑推荐:
· 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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示