mybatis的批量新增,查询和删除

本文分享了使用MyBatis框架进行批量新增、删除的方法,并介绍了如何利用该框架实现树结构的数据查询。

今天学习了,mybatis框架的批量新增,和删除,以及学会用mybatis的框架查询树结构

等到晚上贴代码顺便详解

MyBatis实现批量新增,数据存在则更新、不存在则新增有以下几种高效方法: ### 使用 `ON DUPLICATE KEY UPDATE` 在 `insert` 标签下使用 `ON DUPLICATE KEY UPDATE` 语法。示例如下: ```xml <insert id="insert" parameterType="java.util.List"> insert into student (s_id,s_achievement,s_a_type) values <foreach collection="list" index="index" item="item" separator=","> (#{item.sId},#{item.sAchievement},#{item.sAType}) </foreach> ON DUPLICATE KEY UPDATE s_achievement = VALUES(s_achievement) </insert> ``` 此方法的原理是,当插入的数据在唯一索引或主键上发生冲突时,会执行 `ON DUPLICATE KEY UPDATE` 后面的更新语句。对于批量插入的情况,MyBatis 会将列表中的数据按此规则处理,一次性提交到数据库,避免多次与数据库交互,提高效率。若数据库中不存在该记录,则执行插入操作;若存在,则更新指定字段的值 [^4]。 ### 使用 `REPLACE INTO` 在 `insert` 标签下使用 `REPLACE INTO` 语法。示例如下: ```xml <insert id="saveOpenTime"> REPLACE INTO opentime (weekday, time_start, time_end, start_cron_expr, end_cron_expr) VALUES (#{weekday}, #{timeStart}, #{timeEnd}, #{startCronExpr}, #{endCronExpr}) </insert> ``` `REPLACE INTO` 会先尝试插入数据,如果插入的数据在唯一索引或主键上与已有记录冲突,会先删除原有记录,再插入新记录。这种方法对于批量操作来说,也能通过一次 SQL 语句完成多个数据的处理,减少与数据库的交互次数,提升效率。不过需要注意的是,该操作会删除原记录再插入,若表中存在外键关联等情况,可能会引发问题 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值