抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

1、批量添加

 <!-- 批量插入活动表-->

    <insert id="insertBatchActivity">

        INSERT INTO activity

        (

        activity_id, user_id, create_time

        )

        VALUES

        <foreach collection="list" item="item" separator=",">

            (

            #{item.activityId},

            #{item.userId},

            now()

            )

        </foreach>

    </insert>

2、批量更新

在mybatis的xml文件中,使用foreach动态标签拼接SQL语句,每一条数据的更新语句对应一条update语句,多条语句最终使用";"号进行拼接。

<update id="updateBatchById">

    <foreach collection="list" item="item" separator=";">

        update

            t_student

        set

            name = #{item.name},

            age = #{item.age}

        where

            id = #{item.id}

    </foreach>

</update>

—补充

Cause: java.sql.SQLException: sql injection violation, multi-statement not allow : update ipplus360_mall.users_library_version_authority set shew =?,updated_time =?

            where user_id=? and library_version = ?


解决方法

1.配置中去掉wall这个filter。

spring.datasource.druid.filters=config,wall,slf4j

改为

spring.datasource.druid.filters=config,slf4j

2.数据库连接加上 &allowMultiQueries=true

spring.datasource.url = jdbc:mysql://127.0.0.1:3306/test?useSSL=false&zeroDateTimeBehavior=convertToNull&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&characterSetResults=UTF-8


评论