SpringBoot MyBatis 动态建表
代码
<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>
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
报错
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;
1
2
3
4
5
6
2
3
4
5
6
解决房在,在 yml 里 数据库连接 url 中加入 allowMultiQueries=true
,在 yml 里 druid 配置中加入
wall:
multi-statement-allow: true
1
2
2
上次更新: 4/1/2025, 5:03:02 PM