一、插入不重复字段
传递参数:mybatis 传递参数的7种方法 - 苍青浪 - 博客园
增加判断条件:MyBatis中使用添加判断进行查询 - lszan - 博客园
详解:mybatis —— 动态sql之if条件判断各种使用方式 - sumlen - 博客园
依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.3</version>
</dependency>
对应关系
| gt | > |
|---|---|
| gte | >= |
| lt | < (直接使用会报错) |
| lte | <= (直接使用会报错) |
| eq | == |
| neq | != |
例1:
<if test='id != null and id gt 28'></if>
二、插入重复字段
1、ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE为Mysql特有语法
用法
<insert id="addCimiss">
insert into cultivate.data_cimiss_hour(Station_ID_C, Datetime, PRE_1h, TEM)
values
<foreach item="item" collection="list" separator=",">
<if test="item.TEM lt 9000">
(#{item.Station_ID_C},#{item.Datetime},#{item.PRE_1h},#{item.TEM})
</if>
<if test="item.TEM gt 9000">
(#{item.Station_ID_C},#{item.Datetime},#{item.PRE_1h},0)
</if>
</foreach>
ON DUPLICATE KEY UPDATE
Station_ID_C = VALUES(Station_ID_C),
Datetime = VALUES(Datetime)
</insert>
2、replace into
replace into 首先尝试插入数据到表中,
-
如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
-
否则,直接插入新数据。
要注意的是:插入数据的表必须有主键或者是唯一索引。否则的话,replace into 会直接插入数据,这将导致表中出现重复的数据。
这篇博客探讨了在Mybatis中如何处理插入数据时的重复问题。第一部分介绍了如何在插入时添加判断条件,避免插入重复字段,并提供了相关资源。第二部分详细讲解了MySQL特有的ON DUPLICATE KEY UPDATE语法和REPLACE INTO语句的使用,这两种方法可以在检测到重复数据时更新或替换原有数据。
3858

被折叠的 条评论
为什么被折叠?



