mybatis批量插入oracle表(带自增量列) druid连接池报错修复

    xiaoxiao2025-10-16  10

    <insert id="saveBatch" parameterType="java.util.List">         insert into sys_slog(         id,         menu,         remote_addr,         request_uri,         method,         params,         user_agent,         exception,         time_consuming,         create_by,         create_date         )         select         SEQ_SYS_SLOG_ID.nextval as id, tab.menu,tab.remote_addr,tab.request_uri,tab.method,tab.params,             tab.user_agent,tab.exception,tab.time_consuming,tab.create_by,tab.create_date          from (         <foreach collection="logs" item="item" index="index"             separator="union all">             select             #{item.menu} as menu,             #{item.remoteAddr} as remote_addr,             #{item.requestUri} as request_uri,             #{item.method} as             method,             #{item.params} as params,             #{item.userAgent} as user_agent,             #{item.exception} as exception,             #{item.timeConsuming} as             time_consuming,             #{item.createBy} as create_by,             #{item.createDate} as             create_date             from dual         </foreach>         ) tab     </insert>

    mybatis配置文件如上,以上代码是ok的,但是由于用了druid连接池,由于开启了防止sql注入的防火墙配置项,所以导致报错了,错误信息类似

    sql injection violation, syntax error: ERROR. token : EXCEPTION, pos

    查了半天,最后发现可能是druid语法校验问题,尝试把druid.filters=wall,stat配置项中的wall配置项去交就可以了,不过这样相当于放弃了防止sql注入配置项目。不知道有没有其他更好的解决方案。

    最新回复(0)