亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

在SpringBoot中集成H2數(shù)據(jù)庫的完整指南

 更新時間:2024年10月29日 11:16:30   作者:編碼行者  
Spring Boot是一個簡化企業(yè)級Java應(yīng)用程序開發(fā)的強大框架,H2數(shù)據(jù)庫是一個輕量級的、開源的SQL數(shù)據(jù)庫,非常適合用于開發(fā)和測試,本文將指導您如何在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫,并探索一些高級配置選項,需要的朋友可以參考下

引言

Spring Boot是一個簡化企業(yè)級Java應(yīng)用程序開發(fā)的強大框架。H2數(shù)據(jù)庫是一個輕量級的、開源的SQL數(shù)據(jù)庫,非常適合用于開發(fā)和測試。本文將指導您如何在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫,并探索一些高級配置選項。

依賴關(guān)系

首先,我們需要在項目的pom.xml文件中添加H2數(shù)據(jù)庫和Spring Data JPA的依賴關(guān)系:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

數(shù)據(jù)庫配置

Spring Boot默認配置應(yīng)用程序連接到一個內(nèi)存存儲的H2數(shù)據(jù)庫,用戶名為sa,密碼為空。我們可以通過在application.properties文件中添加以下屬性來自定義這些設(shè)置:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

或者,我們也可以使用application.yml文件進行配置:

spring:
  datasource:
    url: jdbc:h2:mem:mydb
    username: sa
    password: password
    driverClassName: org.h2.Driver
  jpa:
    database-platform: org.hibernate.dialect.H2Dialect

數(shù)據(jù)庫持久化

默認情況下,H2數(shù)據(jù)庫的內(nèi)存存儲在應(yīng)用程序重啟后會導致數(shù)據(jù)丟失。為了解決這個問題,我們可以將數(shù)據(jù)庫存儲為文件:

spring.datasource.url=jdbc:h2:file:/data/demo

或者在YAML文件中:

spring:
  datasource:
    url: jdbc:h2:file:/data/demo

數(shù)據(jù)庫操作

在Spring Boot中執(zhí)行CRUD操作與在其他SQL數(shù)據(jù)庫中類似。我們可以使用JPA倉庫接口和實體類來管理數(shù)據(jù)庫操作。

初始化數(shù)據(jù)源

我們可以使用SQL腳本來初始化數(shù)據(jù)庫。在src/main/resources目錄下創(chuàng)建一個SQL文件,填充一些示例數(shù)據(jù):

INSERT INTO countries (id, name) VALUES (1, 'USA');
INSERT INTO countries (id, name) VALUES (2, 'France');
INSERT INTO countries (id, name) VALUES (3, 'Brazil');
INSERT INTO countries (id, name) VALUES (4, 'Italy');
INSERT INTO countries (id, name) VALUES (5, 'Canada');

Spring Boot會自動運行這個文件來初始化數(shù)據(jù)庫。我們可以通過將spring.sql.init.mode屬性設(shè)置為never來禁用這種默認行為。此外,還可以配置多個SQL文件來加載初始數(shù)據(jù)。

Hibernate和data.sql

默認情況下,data.sql腳本在Hibernate初始化之前執(zhí)行。這使得基于腳本的初始化與Flyway和Liquibase等其他數(shù)據(jù)庫遷移工具保持一致。當我們每次重新創(chuàng)建Hibernate生成的模式時,我們需要設(shè)置一個額外的屬性:

spring.jpa.defer-datasource-initialization=true

這會修改默認的Spring Boot行為,并在Hibernate生成模式之后填充數(shù)據(jù)。

訪問H2控制臺

H2提供了一個嵌入式的GUI控制臺,用于瀏覽數(shù)據(jù)庫內(nèi)容和運行SQL查詢。要啟用H2控制臺,在application.properties中添加以下屬性:

spring.h2.console.enabled=true

或者在application.yml中:

spring:
  h2:
    console:
      enabled: true

啟動應(yīng)用程序后,訪問http://localhost:8080/h2-console即可使用H2控制臺。在登錄頁面使用配置的數(shù)據(jù)庫URL和憑據(jù)進行登錄。

進一步配置H2控制臺

我們可以通過在項目的application.properties中指定以下屬性來進一步配置控制臺:

spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false

或者在YAML配置中:

spring:
  h2:
    console:
      path: /h2-console
      settings:
        trace: false
        web-allow-others: false

H2數(shù)據(jù)庫URL選項

H2數(shù)據(jù)庫URL提供了多種選項以進一步自定義數(shù)據(jù)庫行為。例如:

  • DB_CLOSE_DELAY=-1:確保在JVM運行期間數(shù)據(jù)庫保持打開狀態(tài)。
  • DB_CLOSE_ON_EXIT=FALSE:即使JVM關(guān)閉,數(shù)據(jù)庫也保持打開狀態(tài)。
  • AUTO_RECONNECT=TRUE:允許在連接丟失時自動重新連接。
  • MODE=PostgreSQL:將H2數(shù)據(jù)庫設(shè)置為PostgreSQL兼容模式。

示例配置:

spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE;MODE=PostgreSQL;

結(jié)論

H2數(shù)據(jù)庫與Spring Boot的集成非常流暢,提供了一個輕量級且功能豐富的解決方案,非常適合開發(fā)和測試。通過本文的指南,您應(yīng)該能夠輕松地在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫,并利用其強大的功能。

以上就是在SpringBoot中集成H2數(shù)據(jù)庫的完整指南的詳細內(nèi)容,更多關(guān)于SpringBoot集成H2數(shù)據(jù)庫的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Springboot集成定時器和多線程異步處理操作

    Springboot集成定時器和多線程異步處理操作

    這篇文章主要介紹了Springboot集成定時器和多線程異步處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java 判斷IP地址的合法性實例詳解

    Java 判斷IP地址的合法性實例詳解

    這篇文章主要介紹了Java 判斷IP地址的合法性實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 基于Java網(wǎng)絡(luò)編程和多線程的多對多聊天系統(tǒng)

    基于Java網(wǎng)絡(luò)編程和多線程的多對多聊天系統(tǒng)

    這篇文章主要介紹了基于Java網(wǎng)絡(luò)編程和多線程的多對多聊天系統(tǒng),文中有非常詳細的代碼示例,對正在學習java網(wǎng)絡(luò)編程的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Shiro實現(xiàn)session限制登錄數(shù)量踢人下線功能

    Shiro實現(xiàn)session限制登錄數(shù)量踢人下線功能

    這篇文章主要介紹了Shiro實現(xiàn)session限制登錄數(shù)量踢人下線,本文記錄的是shiro采用session作為登錄方案時,對用戶進行限制數(shù)量登錄,以及剔除下線,需要的朋友可以參考下
    2023-11-11
  • Java?中導入excel時使用?trim()?無法去除空格的問題解決方案

    Java?中導入excel時使用?trim()?無法去除空格的問題解決方案

    這篇文章主要介紹了Java中導入excel時使用trim()無法去除空格的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • SpringBoot集成使用Redis及搭建過程

    SpringBoot集成使用Redis及搭建過程

    jackson-json 工具提供了 javabean 與 json 之 間的轉(zhuǎn)換能力,可以將 pojo 實例序列化成 json 格式存儲在 redis 中,也可以將 json 格式的數(shù)據(jù)轉(zhuǎn)換成 pojo 實例,本文給大家介紹SpringBoot集成使用Redis及搭建過程,感興趣的朋友一起看看吧
    2022-01-01
  • Java代理深入講解之靜態(tài)代理

    Java代理深入講解之靜態(tài)代理

    這篇文章主要給大家介紹了關(guān)于Java靜態(tài)代理的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java 讀取、獲取配置文件.properties中的數(shù)據(jù)

    Java 讀取、獲取配置文件.properties中的數(shù)據(jù)

    這篇文章主要介紹了Java 讀取、獲取配置文件.properties中的數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-09-09
  • Java?Collections工具類中常用算法解析

    Java?Collections工具類中常用算法解析

    在軟件開發(fā)中,算法是非常重要的一部分,它們可以提供高效的數(shù)據(jù)處理和操作,這篇文章主要為大家介紹了Collections?工具類集合框架中常用算法,感興趣的可以了解一下
    2023-06-06
  • springboot啟動腳本start.sh和停止腳本 stop.sh的詳細教程

    springboot啟動腳本start.sh和停止腳本 stop.sh的詳細教程

    這篇文章主要介紹了springboot啟動腳本start.sh和停止腳本 stop.sh的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論