SpringBoot 1.x 与SpringBoot 2.x版本初始化脚本时的区别;使用Druid连接池时初始化数据库脚本。
SpringBoot 1.x
启动时初始化脚本
- 注: 案列中使用的是
JPA
,在application.yml
文件中增加了相关配置;使用的是H2
数据库(可根据实际情况修改数据库连接配置)
Maven
依赖及配置
项目结构
1 | ├─java |
版本信息
SpringBoot
版本:<version>1.5.12.RELEASE</version>
项目依赖
1 | <dependency> |
application.yml
文件内容
1 | server: |
脚本内容
脚本名称说明(机翻自官网)
Spring Boot可以自动创建数据源的架构(DDL脚本)并对其进行初始化(DML脚本)。它从标准根类路径位置(分别为schema.sql和data.sql)加载SQL。另外,Spring Boot处理schema-$ {platform} .sql和data-$ {platform} .sql文件(如果存在),其中platform是spring.datasource.platform的值。这使您可以在必要时切换到特定于数据库的脚本。例如,您可以选择将其设置为数据库的供应商名称(hsqldb,h2,oracle,mysql,postgresql等)。
data.sql
1 | drop table if exists tbl_account; |
schema.sql
1 | insert into tbl_account (id,name,age,sex,password,role) values (1001,'admin',18,'男','1','ROLE_ADMIN'); |
SpringBoot 2.x
启动时初始化脚本
- 注: 需要在
SpringBoot 1.x
的application.yaml
中增加属性,示例如下
1 | spring.datasource.initialization-mode=always |
application.yml
完整内容
1 | server: |
SpringBoot 2.0
使用Druid
连接池初始化脚本
Maven
依赖及配置
SpringBoot
默认的数据库连接池为Hikari
,本文中使用的是Druid
而已;配置和Hikari
应该是一样的,如果有不同烦请告知。
项目结构
1 | ├─main |
版本信息
SpringBoot
版本:<version>2.2.1.RELEASE</version>
项目依赖
1 | <dependency> |
application.yml
文件内容
1 | server: |
脚本内容
- 与上述一致,为方便查看copy了一下
脚本名称说明(机翻自官网)
Spring Boot可以自动创建数据源的架构(DDL脚本)并对其进行初始化(DML脚本)。它从标准根类路径位置(分别为schema.sql和data.sql)加载SQL。另外,Spring Boot处理schema-$ {platform} .sql和data-$ {platform} .sql文件(如果存在),其中platform是spring.datasource.platform的值。这使您可以在必要时切换到特定于数据库的脚本。例如,您可以选择将其设置为数据库的供应商名称(hsqldb,h2,oracle,mysql,postgresql等)。
data.sql
1 | drop table if exists tbl_account; |
schema.sql
1 | insert into tbl_account (id,name,age,sex,password,role) values (1001,'admin',18,'男','1','ROLE_ADMIN'); |
数据源配置
DruidDataSourceConfig
1 | package com.dew.config; |
DruidDataSourcesConfigTest
1 | package com.dew.config; |
- 小提示: 若对数据库连接池配置有不明白的,可以查看另一篇博客SpringBoot配置多数据源