mybatis 批量新增修改删除语法


/**
* 注解形式返回id
* 使用 @Param后注意声明返回id teachers.id 埋坑 !!!
*/
@Insert("insert into teacher(name,teacher_info)values(#{teachers.name},#{teachers.teacherInfo})")
@Options(useGeneratedKeys = true , KeyProperty = "teachers.id" , keyColumn = "ID")
Boolean saveTeacher(@Param(value = "teachers") List<Teacher> teacher);

//分批插入可把返回的id传到mapper
void insertStudent(@Param("students") List<Student> student ,@Param("id") Integer id)


/**
* 从实体类里可以获取执行完返回主键id
* collection 对应 @Param(value = "teachers")
* item 当前获取的元素
* index 当前遍历次数
*/

<insert id="saveTeacher" parameterType="com.li.model.Teacher" useGeneratedKeys="true" keyProperty="id">
        insert into teacher (`name`,`teacher_info`,`sid`)
        values
        <foreach collection="teachers" item="teacher" index="index" separator=",">
            (
            #{id}  
            #{teacher.name,jdbcType=VARCHAR},
            #{teacher.teacherInfo,jdbcType=VARCHAR}
            )
        </foreach>
    </insert>


/**
* 批量修改
*/
 Boolean UpdateStudent (@Param(value = "students") List<Student> students);

/**
* 注意点: 因为此xml是循环执行sql语句本身
* 必须在数据库配置 allowMultiQueries=true 属性 ,否则报错!!!!!
* &allowMultiQueries=true放到最前边(添加后还报错可以尝试)
*/

  <update id="UpdateStudent" parameterType="java.util.List">
        <foreach collection="students" item="student" separator=";">
        update
        student
        <set>
            <if test="student.name != null">
                name = #{student.name,jdbcType=VARCHAR},
            </if>
            <if test="student.studentInfo != null">
                student_Info = #{student.studentInfo,jdbcType=VARCHAR}
            </if>
        </set>
        where id = #{student.id,jdbcType=INTEGER}
        </foreach>
    </update>


<update id="updateIds" parameterType="java.util.List">
        update student
        set
        student_Info = "全日制"
        where id in
        <foreach item="student" collection="students" open="(" separator="," close=")">
            #{student.id}
        </foreach>
    </update>


  <delete id="delDtudent">
        delete from  student
        where id in
        <foreach item="id" collection="list" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值