小编使用springboot,mybatis作批量更新的时候控制台报错updateBatch-Inlinejava
缘由:mysql
配置的 mysql jdbc 连接字符串 默认不支持一次性执行多个sql 语句。须要在配置数据库链接的url后面加上spring
characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
一、批量插入sql
<insert id="insertBatch" parameterType="java.util.List"> insert into sc_course_schedule (schoolid,teacherid,courseid,semesterid,classroomid,coursedesc,sequenceno,course_week,course_weekly,starttime,endtime,state,createtime,creator,modifytime,operater) values <foreach collection="list" item="item" index="index" separator=","> (#{item.schoolid},#{item.teacherid},#{item.courseid},#{item.semesterid},#{item.classroomid},#{item.coursedesc},#{item.sequenceno},#{item.course_week},#{item.course_weekly},#{item.starttime},#{item.endtime},#{item.state},#{item.createtime},#{item.creator},#{item.modifytime},#{item.operater}) </foreach> </insert>
<update id="updateBatch" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update sc_course_schedule <set> teacherid=#{item.teacherid}, courseid=#{item.courseid}, classroomid=#{item.classroomid}, coursedesc=#{item.coursedesc}, modifytime=#{item.modifytime}, operater=#{item.operater} </set> <where> id=#{item.id} </where> </foreach> </update>
三、批量删除数据库
<delete id="deleteBatch" parameterType="java.util.List"> delete from sc_course_schedule where id IN <foreach collection="list" item="item" open="(" separator="," close=")"> #{item.id} </foreach> </delete>