Mybatis 动态insert

Mybatis 动态insert

表结构

表结构
实体类

@Data
public class User {
    private String uuid;
    private String username;
    private String password;
    private String email;

    public User(String uuid, String username, String password, String email) {
        this.uuid = uuid;
        this.username = username;
        this.password = password;
        this.email = email;
    }

    public User(String uuid, String username) {
        this.uuid = uuid;
        this.username = username;
    }

    public User() {
    }
}

dao

@Mapper
public interface UserDao {
	//动态插入
	void dynamicInsert(User user);

	//批量动态插入
    void dynamicInsertBatch(@Param("list") List<User> list);
}

xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zxr.template.dao.UserDao">
	<!--动态插入-->
    <insert id="dynamicInsert" parameterType="com.zxr.template.entity.User">
        insert into t_user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="uuid != null and uuid != ''">
                uuid,
            </if>
            <if test="username != null and username !=''">
                username,
            </if>
            <if test="password != null and password !=''">
                password,
            </if>
            <if test="email != null and email !=''">
                email,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="uuid != null and uuid != ''">
                #{uuid},
            </if>
            <if test="username != null and username !=''">
                #{username},
            </if>
            <if test="password != null and password !=''">
                #{password},
            </if>
            <if test="email != null and email !=''">
                #{email},
            </if>
        </trim>
    </insert>



    <!--批量动态插入-->
    <insert id="dynamicInsertBatch" parameterType="com.zxr.template.entity.User">
        insert into t_user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="list.get(0).uuid != null and list.get(0).uuid != ''">
                uuid,
            </if>
            <if test="list.get(0).username != null and list.get(0).username !=''">
                username,
            </if>
            <if test="list.get(0).password != null and list.get(0).password !=''">
                password,
            </if>
            <if test="list.get(0).email != null and list.get(0).email !=''">
                email,
            </if>
        </trim>
        values
        <foreach collection="list" index="index" item="item" separator=",">
            <trim prefix="(" suffix=")" suffixOverrides=",">
                <if test="item.uuid != null and item.uuid!=''">
                    #{item.uuid},
                </if>
                <if test="item.username!=null and item.username!=''">
                    #{item.username},
                </if>
                <if test="item.password!=null and item.password!=''">
                    #{item.password},
                </if>
                <if test="item.email!=null and item.email!=''">
                    #{item.email},
                </if>
            </trim>
        </foreach>
    </insert>
</mapper>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值