1.批量插入:
普通插入
INSERT INTO TBL_TEST (id) VALUES(1);
由于性能的瓶颈问题,MYSQL官方文档提到了使用批量化插入的方式,也就是在一句INSERT语句里面插入多个值。即,
INSERT INTO TBL_TEST (id) VALUES (1), (2), (3)
2.插入list
<insert id="insertForeach" parameterType="java.util.List" >
insert into user_message
(
user_id,
`type`,
client_type
)
values
<foreach collection="list" item="userMessage" index="index" separator=",">
(
#{userMessage.userId},
#{userMessage.type},
#{userMessage.clientType}
)
</foreach>
</insert>
3.动态插入:
动态判断skipId是否有值,如果有值,就执行新增
<insert id="insertSelective" parameterType="com.bootdo.system.domain.LogDO">
insert into sys_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="userId != null">
user_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=BIGINT},
</if>
<if test="userId != null">
#{userId,jdbcType=BIGINT},
</if>
</trim>
</insert>
以上。