一、简介

  我们使用SpringBoot + JPA时,需要程序在启动时执行数据表的初始化或者数据库记录的初始化。一般数据表的初始化可以通过在Spring Boot的application.properties中进行配置spring.jpa.hibernate.ddl-auto=update来实现。但是数据记录的初始化,该怎么做呢?

  下面,我们将使用SpringBoot2.0.4Release版本做实验

二、配置application.properties

  连接字符串角配置:

#连接字符串
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://172.16.4.203:3306/mydatabase?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update
spring.datasource.platform=org.hibernate.dialect.MySQL57Dialect

  初始化数据:

#初始化数据
spring.datasource.schema=classpath:schema.sql
spring.datasource.data=classpath:data.sql
spring.datasource.sql-script-encoding=utf-
spring.datasource.initialization-mode=ALWAYS

三、说明

  因为SpringBoot在启动时,只有检测到spring.datasource.initialization-mode=ALWAYS配置,后再检测spring.datasource.schema之后,且配置的sql角本命令不为空,才会去执行schema和spring.datasource.data。因此需要在scheme.sql中随便写一句sql语句。

  schema.sql

-- 这里是定义数据结构的SQL,每次运行都会执行,此文件不能为空,必须至少写一句Sql语句。
show tables;

  data.sql

-- 下列角本是同步服务系统每次启动会自动执行的角本。编写时,请注意确保角本中不会变更现有记录。

-- SettingTab
INSERT setting_tab(id,name,value,description) SELECT 1, 'name', 'admin','用户名' FROM dual WHERE not EXISTS (select 1 from setting_tab where setting_tab.id = 1);
INSERT setting_tab(id,name,value,description) SELECT 2, 'key', '','密钥' FROM dual WHERE not EXISTS (select 1 from setting_tab where setting_tab.id=2);

最新文章

  1. margin双边距的问题
  2. iOS 常用的向上,向下取整, 四舍五入函数
  3. SQL SERVER 导出数据,数据与结构,结构
  4. EasyUI+MVC-搭建后台框架
  5. 微信开发时遇到的UrlConnection乱码的问题
  6. 救援行动(save) (BFS)
  7. python(1) - 输入和输出
  8. javascript mvc
  9. 常见HTTP状态码大全
  10. Tcl语言笔记之一
  11. Linux指令--chown
  12. 2017-2018-1 20155215 第五周 mybash的实现
  13. Xshell配合Screen之ssh会话永不断开
  14. python 文本比对
  15. Vs2017 无法调试APP
  16. 将项目部署到 github上(部署到码云操作一样,前提是有码云账号)
  17. MT【193】三面角的正余弦定理
  18. EOJ 262 润清的烦恼
  19. mysql-5.7 调整mysql的复制方式由master_log_file+master_log_pos 到gtid 详解
  20. CMS: DNN And Umbraco

热门文章

  1. ural1855 线段树区间更新+推公式维护一元二次式
  2. spoj New Distinct Substrings
  3. 《转》Pragma: no-cache 对性能的影响
  4. 微信h5支付源码DEMO参考
  5. android修改默认输入法
  6. A. 【UR #16】破坏发射台
  7. 关于tomcat性能优化
  8. (转)HIBERNATE与 MYBATIS的对比
  9. 《Gradle权威指南》--Android Gradle多项目构建
  10. Vscode下Python的用户界面介绍