JAVAEE批量操作删除、添加、修改代码报错

首先值得注意的是在链接数据库的文件中需要把予许批量操作的代码开启,可以在idea的mapper文件中的properties文件中查看是否开启。

mysql.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true&autoReconnect=true&allowMultiQueries=true

其次就是在xml的配置文件中配置好批量操作的代码

<!--批量删除-->
    <delete id="batchDelete" parameterType="java.util.Arrays">
    delete from user
    <where>
        <if test="array!=null" >
            <foreach collection="array" item="id" index="index" open="id in (" separator="," close=")">
                #{id}
            </foreach>
        </if>
    </where>
    </delete>

<!--批量修改-->
    <update id="batchUpdate" parameterType="java.util.List">
        <foreach collection="list" item="item" index="index" separator=";">
            update user set name=#{item.name} where id=#{item.id}
        </foreach>
    </update>

    <!--批量增加-->
    <insert id="batchAdd" parameterType="java.util.List">
        insert into user (name) values
                <foreach collection="list" item="id" index="index"  separator=",">
                    (#{id.name})
                </foreach>
    </insert>

最后在Test测试文件中写出测试批量操作的代码。

//批量修改
    @Test
    public void batchUpdate(){
        List list =new ArrayList();
        for (int i=1;i<3;i++){
            example.entity.Actor a = new example.entity.Actor();
            a.setId(i);
            a.setName("测试角色"+(i));
            a.setDescription("测试描述"+(i));
            list.add(a);
        }
        Integer result =sqlSession.update("batchUpdate",list);
        if(result>0){
            System.out.println("操作成功");
        }else{
            System.out.println("操作失败");
        }
    }

    //批量删除
    @Test
    public void batchDelete(){
        Integer[] array={2,3};
        Integer result =sqlSession.delete("batchDelete",array);
        if(result>0){
            System.out.println("操作成功");
        }else{
            System.out.println("操作失败");
        }
    }

    //批量增加
    @Test
    public void batchAdd(){
       List list = new ArrayList();

       for (int i=0;i<5;i++){
           example.entity.Actor a = new example.entity.Actor();
           a.setName("测试角色"+(i+1));
           list.add(a);
       }
        Integer result=sqlSession.insert("batchAdd",list);
    }
经验分享 程序员 微信小程序 职场和发展