专栏名称: 纯洁的微笑
分享微服务实践与Java技术干货、偶尔讲讲故事。在人工智能的时代,一起学习微服务架构演进和大数据治理。
目录
相关文章推荐
读者  ·  “团队准备解散了!” ·  昨天  
新周刊  ·  这个老北京粤语说得比你好,不服来战 ·  2 天前  
三联生活周刊  ·  体检报告,中年人的“恐怖盲盒” ·  2 天前  
新周刊  ·  机票跌到200块,我却高兴不起来 ·  2 天前  
新周刊  ·  金价暴涨,年轻人买0.1克金贴在手机上 ·  3 天前  
51好读  ›  专栏  ›  纯洁的微笑

Spring Boot (十三): Spring Boot 小技巧

纯洁的微笑  · 公众号  ·  · 2019-07-30 09:09

正文

一些 Spring Boot 小技巧、小知识点

初始化数据

我们在做测试的时候经常需要初始化导入一些数据,如何来处理呢?会有两种选择,一种是使用 Jpa,另外一种是 Spring JDBC 。两种方式各有区别下面来详细介绍。

使用 Jpa

在使用 spring boot jpa 的情况下设置 spring.jpa.hibernate.ddl-auto 的属性设置为 create or create-drop 的时候,Spring Boot 启动时默认会扫描 classpath 下面(项目中一般是 resources 目录)是否有 import.sql ,如果有机会执行 import.sql 脚本。

使用 Spring JDBC

使用 Spring JDBC 需要在配置文件中添加以下配置

  1. spring:

  2. datasource:

  3. schema: classpath:db/schema.sql

  4. data: classpath:db/data.sql

  5. sql-script-encoding: utf-8

  6. jpa:

  7. hibernate:

  8. ddl-auto: none

  • schema :脚本中创建表的语句

  • data :脚本中初始化数据的预计

  • sql-script-encoding:设置脚本的编码

Spring Boot 项目启动的时候会自动执行脚本。

ddl-auto 四个值的解释

  1. create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。

  2. create-drop :每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。

  3. update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。







请到「今天看啥」查看全文