关注微信公众号:CodingTechWork,一起学习进步。

  本文主要介绍Spring Boot中使用JPA或JDBC进行数据库表结构创建的两种方式。

介绍

  在利用SpringBoot框架进行开发时,大部分服务避不开用数据库进行数据存储和使用。SpringBoot里面一般有两种方式进行数据表的创建和数据存储。
  一种是使用Spring Boot JPA,我们需要在application.yml或者application.properties中配置jpa相关属性spring.jpa.xxx属性配置。另一种是Spring JDBC,我们需要在application.yml或者application.properties中配置JDBC相关属性,主要是spring.datasource.xxx属性配置。当然,使用jpa也需要用到spring.datasource.url/username/password等属性配置进行数据库地址、用户名、密码等配置。

配置

配置模板

spring:datasource:schema: classpath:db/schema.sqldata: classpath:db/data.sqlsql-script-encoding: UTF-8driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/infinite?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=falseusername: userApassword: 123456jpa:hibernate:ddl-auto: nonedatabase: mysqlproperties:hibernate:dialect: org.hibernate.dialect.MySQL5Dialect

配置说明

spring.datasource.xxx

  • spring.datasource.schema: 脚本中创建表的语句存放路径,classpath/db表示在工程的resource层级下的db目录中存放。
  • spring.datasource.data:脚本中初始化数据的语句存放路径。
  • spring.datasource.sql-script-encoding:设置脚本的编码,默认常用设置为UTF-8。
  • spring.datasource.driver-class-name:配置driver的类名,默认是从JDBC URL中自动探测。
  • spring.datasource.url:配置数据库JDBC连接串。
  • spring.datasource.username:配置数据库连接用户名。
  • spring.datasource.password:配置数据库连接用户名对应的密码。
      使用上述方式建表时,spring.jpa.hibernet.ddl-auto设置成none,否则有啥问题,我也没尝试过。这样配置可以避免两种方式一起使用。

spring.jpa.xxx

  • spring.jpa.hibernet.ddl-auto值说明
  1. create: 服务程序重启后,加载hibernate时都会删除上一次服务生成的表,然后根据服务程序中的model(entity)类再重新生成表,这个值慎用,会导致数据库中原表数据丢失。
  2. create-drop :服务服务程序重启后,加载hibernate时根据model(entity)类生成表,当sessionFactory关闭时,创建的表就自动删除。
  3. update:默认常用属性,第一次加载hibernate时根据model(entity)类会自动建立表结构,后面服务程序重启时,加载hibernate会根据model(entity)类自动更新表结构,如果表结构改变了,但是表行仍然存在,不会删除以前的行(对于表结构行只增不减)。
  4. validate :服务程序重启后,每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,如果不同,就会报错。不会创建新表,但是会插入新值。
  5. none : 什么也不做。
      我们常用的是update这个属性配置。
  • spring.jpa.database
    配置数据库类型,我们常用MYSQL数据库,就配置MYSQL(大小写都可)即可;

  • spring.jpa.properties.hibernate.dialect
    使用MYSQL5作为数据库访问方言。

附:什么是数据库方言

  其实类比我们生活中的方言,方言就是某个地方的特色语言,这个语言区别于其他地方的语言,比如在江苏,有南通方言、盐城方言、苏州方言,只要你是当地人,你基本能听懂当地的方言。
  对于数据库的方言,也是同样的道理,MySQL是一种方言,Oracle也是一种方言,当然他们都遵循SQL规范的,就好比南通方言、盐城方言都遵循普通话规范,然后有各自的一个扩展性和特色。举个例子,MySQL分页是用limit关键字,而Oracle分页是用rownum关键字。

SpringBoot—JPA和JDBC常用配置说明相关推荐

  1. springboot+jpa+mysql Springboot+jpa+jdbc+sqlserver 使用时遇到的一系列的问题

    更改背景 正在做一个微信小程序的前后端项目,一开始使用的是springboot+jpa+mysql,但负责接受数据存入数据库的负责人执意要用sqlserver.本来微信小程序前端,以及spring b ...

  2. springboot+jpa+mybatis 多数据源支持

    springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...

  3. springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离

    相关代码:github OSCchina JPA是什么 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具 来管理 ...

  4. 补习系列(19)-springboot JPA + PostGreSQL

    目录 SpringBoot 整合 PostGreSQL 一.PostGreSQL简介 二.关于 SpringDataJPA 三.整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 ...

  5. 全网最全精析破解 Springboot+Jpa 对数据库增删改查

    前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...

  6. JPA+Hibernate中常用的注解

    JPA+Hibernate中常用的注解 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体[对 ...

  7. SpringBoot+JPA 启动建表错误:CommandAcceptanceException: Error executing DDLalter table X drop foreign key

    搭个Springboot+Jpa环境,一启动就报错: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing ...

  8. springboot JPA整合国产神通数据库(神州通用数据库)

    当前国产软件比较流行,就最近做过的springboot +JPA+神通数据库的项目做下记录供有需要的同学参考. 神通数据库在springboot中的配置和大多关系型数据库基本一样的,只是由于驱动jar ...

  9. 基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统【100010425】

    基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统 一 .项目背景及需求分析 用户在可靠验证下实现简化身份确认 在已有用户数据库基础上 传统校验方式: 直接选择 = ...

最新文章

  1. Java解压zip文件(文本)压缩包
  2. 不要在构造和析构函数中调用虚函数
  3. iOS开发学习之MapKit - 获得在MapView(地图)中显示多个标记的区域(MKCoordinateRegion)...
  4. 【CF1189D】Add on a Tree【结论】【构造】
  5. 码风改变计划(暂定)
  6. 关于junit测试类启动慢报错:failed to resolve org.junit.platform
  7. 小程序Canvas原有接口不再维护
  8. 动态规划之最长回文串
  9. 如何借助OpenStack命令行工具管理虚拟机?
  10. 数据库实战:SQL Server系列网络课程资料集
  11. 国产WMS仓库管理系统排名
  12. SPSS之双独立样本的T检验
  13. 8个经典智能穿戴设备优选电路方案合辑
  14. egret 里面设置MovieClip的scale缩放值时,没有效果的情况
  15. 驾驭你的“职场布朗运动” (作者李云)
  16. dos系统的界面字体设置
  17. portal服务器信息超时,某学校Agile Controller-Campus(V100R003C50SPC300)作为portal服务器用户反映认证通过后一定时间内掉线需重新认证问题排查...
  18. python白噪声检验结果查询_使用python实现时间序列白噪声检验方式
  19. 建筑央企工程项目数字化管理整体解决方案
  20. 在vscode里java插件无法编译和运行java源代码,提示找不到符号踩坑记录

热门文章

  1. 笨方法“学习python笔记之函数
  2. 理解CNN中的特征图 feature map
  3. CSS自定义属性(CSS变量)
  4. [Unity] 战斗系统学习 11:Buff 框架 1
  5. conda安装cuda_记一次在 RTX 3090 上安装 APEX
  6. dedeCMS 会员:个人空间模板style修改
  7. phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页
  8. PHP在线小说txt生成器源码
  9. 在html中用表单插入servlet 怎么写servlet的地址,java web中servlet、jsp、html 互相访问的路径问题。...
  10. fidde调试手机_实操:手机上用Fiddler调试页面(嘎)