zoukankan      html  css  js  c++  java
  • 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.sql
        data: classpath:db/data.sql
        sql-script-encoding: UTF-8
        driver-class-name: com.mysql.jdbc.Driver
        url: jdbc:mysql://localhost:3306/infinite?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
        username: userA
        password: 123456
      jpa:
        hibernate:
          ddl-auto: none
        database: mysql
        properties:
          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关键字。

  • 相关阅读:
    【POJ2176】Folding
    【NOIP2018】赛道修建
    优雅的文本编辑器——Sublime Text 3的搭建与使用
    【NOIP2010】乌龟棋
    【POJ3585】Accumulation Degree
    【POJ3322】Bloxorz I
    python之路_常用模块介绍
    python之路_正则表达式及re模块
    python之路_内置函数及匿名函数
    python之路_递归函数及实例讲解
  • 原文地址:https://www.cnblogs.com/Andya/p/13260130.html
Copyright © 2011-2022 走看看