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關鍵字。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM