文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【Mybatis】Mybatis批量插入操作【详细教程】

2023-09-18 06:34

关注

前言🎶

对于我们在开发中很多场景都会遇到一些批量数据的插入操作,这篇文章我会简单展示一下案例和在插入时所注意的事项。

案例🌹

首先看一下我们的Mapper.xml文件中的批量插入语法。

<insert id="saveBatchFeedback">        insert into t_feedback(        <include refid="Base_Column_List"/>        ) values        <foreach collection="list" separator="," item="item" index="index">            (            #{item.feedbackId,jdbcType=VARCHAR},            #{item.customerId,jdbcType=VARCHAR},            #{item.projectId,jdbcType=VARCHAR},            #{item.moduleName,jdbcType=VARCHAR},            #{item.menuName,jdbcType=VARCHAR},            #{item.feedbackContent,jdbcType=VARCHAR},            #{item.feedbackDept,jdbcType=VARCHAR},            #{item.feedbackUser,jdbcType=VARCHAR},            #{item.requestTime,jdbcType=VARCHAR},            #{item.feedbackFile,jdbcType=VARCHAR},            #{item.feedbackMemo,jdbcType=VARCHAR},            #{item.insertTime,jdbcType=VARCHAR},            #{item.insertUser,jdbcType=VARCHAR}            )        </foreach>    </insert>

include标签中的内容

<sql id="Base_Column_List">    feedback_id, customer_id, project_id, module_name, menu_name, feedback_content, feedback_dept,     feedback_user, feedback_file, request_time, feedback_memo, insert_time, insert_user  </sql>

如果有对在SQL中公共引用不熟悉的可以去看一下我的这篇文章:
sql字段的公共引用

我们看一下我们的Mapper接口🐱‍🚀

//批量添加反馈int saveBatchFeedback(@Param("list") List<TFeedback> list);

因为我们是list集合来进行批量插入,所以在xml中collection的属性值为list

然后我们看一下controller的处理方式🎁

@RequestMapping("saveBatchFeedback")    public Message saveBatchFeedback(String feedbackJson) {        List<TFeedback> list = JSONArray.parseArray(feedbackJson, TFeedback.class);        feedbackMapper.saveBatchFeedback(list);        ......    }

可以看到我定义的是一个JSON字符串,这样的话是比较简单的(因为前端也是我开发的,不会用集合进行传参,菜鸡一个),然后我们将这个JSON串通过fastjson工具来转为我们的一个List集合数据,然后调用Mapper接口方法进行添加。

当然我们也可以使用List集合来接受前端发送过来的一个JSON格式的集合,如下👇

@RequestMapping("saveBatchFeedback")    public Message saveBatchFeedback(List<TFeedback> feedbacks) {        feedbackMapper.saveBatchFeedback(feedbacks);        ......    }

这样的话我们就不需要去将JSON字符串转换为对象了,如果没有其他业务的话,我们可以直接调用Mapper层接口进行批量添加,前提是前端的JSON字段需要跟你List泛型的类型里的字段保持一致

FastJson工具依赖

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.40</version></dependency>`

小结🐱‍🐉

这篇文章暂时先分享到这里,如果有不懂的可以看我另一篇Mybatis批量插入文章:Mybatis批量插入
或者是来私信我要源码都可以。

来源地址:https://blog.csdn.net/Syals/article/details/127564420

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯