项目环境
spring boot + mybatis + druid
项目代码
<update id="createTelemetryTable" parameterType="java.util.List">
<foreach item="item" index="index" collection="list">
CREATE TABLE if not exists `${item}` (
sys_id bigint NOT NULL,
mpnt_id bigint NOT NULL,
date_time datetime NOT NULL,
value_id DECIMAL(10,2) NOT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
</foreach>
</update>
报错
Caused by: java.sql.SQLException: sql injection violation, multi-statement not allow : CREATE TABLE if not exists `rt_telemetry_p` (
sys_id bigint NOT NULL,
mpnt_id bigint NOT NULL,
date_time datetime NOT NULL,
value_id DECIMAL(10,2) NOT NULL
) ENGINE=MYISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
解决方案
在yml 里 数据库连接 url 中加入
allowMultiQueries=true
在yml 里 druid 配置中加如
wall:
multi-statement-allow: true