一、插入不重复字段
传递参数: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 会直接插入数据,这将导致表中出现重复的数据。