SpringBoot—JPA和JDBC常用配置说明
关注微信公众号: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
值说明
- create: 服务程序重启后,加载hibernate时都会删除上一次服务生成的表,然后根据服务程序中的model(entity)类再重新生成表,这个值慎用,会导致数据库中原表数据丢失。
- create-drop :服务服务程序重启后,加载hibernate时根据model(entity)类生成表,当sessionFactory关闭时,创建的表就自动删除。
- update:默认常用属性,第一次加载hibernate时根据model(entity)类会自动建立表结构,后面服务程序重启时,加载hibernate会根据model(entity)类自动更新表结构,如果表结构改变了,但是表行仍然存在,不会删除以前的行(对于表结构行只增不减)。
- validate :服务程序重启后,每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,如果不同,就会报错。不会创建新表,但是会插入新值。
- none : 什么也不做。
我们常用的是update
这个属性配置。
spring.jpa.database
配置数据库类型,我们常用MYSQL数据库,就配置MYSQL(大小写都可)即可;spring.jpa.properties.hibernate.dialect
使用MYSQL5作为数据库访问方言。
附:什么是数据库方言
其实类比我们生活中的方言,方言就是某个地方的特色语言,这个语言区别于其他地方的语言,比如在江苏,有南通方言、盐城方言、苏州方言,只要你是当地人,你基本能听懂当地的方言。
对于数据库的方言,也是同样的道理,MySQL是一种方言,Oracle也是一种方言,当然他们都遵循SQL规范的,就好比南通方言、盐城方言都遵循普通话规范,然后有各自的一个扩展性和特色。举个例子,MySQL分页是用limit
关键字,而Oracle分页是用rownum
关键字。
SpringBoot—JPA和JDBC常用配置说明相关推荐
- springboot+jpa+mysql Springboot+jpa+jdbc+sqlserver 使用时遇到的一系列的问题
更改背景 正在做一个微信小程序的前后端项目,一开始使用的是springboot+jpa+mysql,但负责接受数据存入数据库的负责人执意要用sqlserver.本来微信小程序前端,以及spring b ...
- springboot+jpa+mybatis 多数据源支持
springboot+jpa+mybatis 多数据源支持 配置dataSource import org.springframework.beans.factory.annotation.Quali ...
- springboot jpa sql打印_SpringBoot集成Spring Data JPA以及读写分离
相关代码:github OSCchina JPA是什么 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,它为Java开发人员提供了一种对象/关联映射工具 来管理 ...
- 补习系列(19)-springboot JPA + PostGreSQL
目录 SpringBoot 整合 PostGreSQL 一.PostGreSQL简介 二.关于 SpringDataJPA 三.整合 PostGreSQL A. 依赖包 B. 配置文件 C. 模型定义 ...
- 全网最全精析破解 Springboot+Jpa 对数据库增删改查
前言: 昨天做的是springboot+mybatis 对数据库进行增删改查 但是我感觉配置文件太多了 很麻烦 繁琐 今天搞一下springboot+Jpa对数据库进行增删改查, 感觉很好用 ,所以记 ...
- JPA+Hibernate中常用的注解
JPA+Hibernate中常用的注解 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体[对 ...
- SpringBoot+JPA 启动建表错误:CommandAcceptanceException: Error executing DDLalter table X drop foreign key
搭个Springboot+Jpa环境,一启动就报错: org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing ...
- springboot JPA整合国产神通数据库(神州通用数据库)
当前国产软件比较流行,就最近做过的springboot +JPA+神通数据库的项目做下记录供有需要的同学参考. 神通数据库在springboot中的配置和大多关系型数据库基本一样的,只是由于驱动jar ...
- 基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统【100010425】
基于 SpringBoot + jpa + Erupt 后台框架开发的综合签到打卡系统 一 .项目背景及需求分析 用户在可靠验证下实现简化身份确认 在已有用户数据库基础上 传统校验方式: 直接选择 = ...
最新文章
- Java解压zip文件(文本)压缩包
- 不要在构造和析构函数中调用虚函数
- iOS开发学习之MapKit - 获得在MapView(地图)中显示多个标记的区域(MKCoordinateRegion)...
- 【CF1189D】Add on a Tree【结论】【构造】
- 码风改变计划(暂定)
- 关于junit测试类启动慢报错:failed to resolve org.junit.platform
- 小程序Canvas原有接口不再维护
- 动态规划之最长回文串
- 如何借助OpenStack命令行工具管理虚拟机?
- 数据库实战:SQL Server系列网络课程资料集
- 国产WMS仓库管理系统排名
- SPSS之双独立样本的T检验
- 8个经典智能穿戴设备优选电路方案合辑
- egret 里面设置MovieClip的scale缩放值时,没有效果的情况
- 驾驭你的“职场布朗运动” (作者李云)
- dos系统的界面字体设置
- portal服务器信息超时,某学校Agile Controller-Campus(V100R003C50SPC300)作为portal服务器用户反映认证通过后一定时间内掉线需重新认证问题排查...
- python白噪声检验结果查询_使用python实现时间序列白噪声检验方式
- 建筑央企工程项目数字化管理整体解决方案
- 在vscode里java插件无法编译和运行java源代码,提示找不到符号踩坑记录
热门文章
- 笨方法“学习python笔记之函数
- 理解CNN中的特征图 feature map
- CSS自定义属性(CSS变量)
- [Unity] 战斗系统学习 11:Buff 框架 1
- conda安装cuda_记一次在 RTX 3090 上安装 APEX
- dedeCMS 会员:个人空间模板style修改
- phpcmsV9 自定义分页函数与调用 - 不影响后台SQL分页
- PHP在线小说txt生成器源码
- 在html中用表单插入servlet 怎么写servlet的地址,java web中servlet、jsp、html 互相访问的路径问题。...
- fidde调试手机_实操:手机上用Fiddler调试页面(嘎)