想要在SpringBoot启动时,执行SQL脚本,实现自动建表并插入数据, spring.datasource.schema=classpath:sql/t_table_build.sql spring.datasource.data=classpath:sql/t_table_data.sql
使用了以上配置,数据库连接全部都是utf-8,建表语句也是utf-8编码格式,但是初始化后,插入的静态数据居然是乱码显示的,但是通过代码插入的数据不是乱码显示,怀疑是执行sql脚本缺少配置了。
经查询,发现是缺少了此配置spring.datasource.sql-script-encoding=utf-8
删库后重新执行,数据插入成功
以下是我的SpringBoot数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.tomcat.init-s-q-l=SET NAMES utf8
spring.datasource.hikari.auto-commit=true
#空闲连接超时时长
spring.datasource.hikari.idle-timeout=60000
#连接超时时长
spring.datasource.hikari.connection-timeout=60000
#最大生命周期,0不过期
spring.datasource.hikari.max-lifetime=0
#最小空闲连接数
spring.datasource.hikari.minimum-idle=10
#最大连接数量
spring.datasource.hikari.maximum-pool-size=10
#配置springboot启动时执行静态sql表和数据
spring.datasource.initialization-mode=always
# 执行建表语句和插入语句的编码格式
spring.datasource.sql-script-encoding=utf-8
#执行建表语句
spring.datasource.schema=classpath:sql/t_table_build.sql
#执行数据插入
spring.datasource.data=classpath:sql/t_table_data.sql
#遇到错误继续执行
spring.datasource.continue-on-error=true