欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

引言

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

依賴關(guān)系

首先,我們需要在項(xiàng)目的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默認(rèn)配置應(yīng)用程序連接到一個(gè)內(nèi)存存儲(chǔ)的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文件進(jìn)行配置:

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

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

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

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í)體類來管理數(shù)據(jù)庫操作。

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

我們可以使用SQL腳本來初始化數(shù)據(jù)庫。在src/main/resources目錄下創(chuàng)建一個(gè)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會(huì)自動(dòng)運(yùn)行這個(gè)文件來初始化數(shù)據(jù)庫。我們可以通過將spring.sql.init.mode屬性設(shè)置為never來禁用這種默認(rèn)行為。此外,還可以配置多個(gè)SQL文件來加載初始數(shù)據(jù)。

Hibernate和data.sql

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

spring.jpa.defer-datasource-initialization=true

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

訪問H2控制臺(tái)

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

spring.h2.console.enabled=true

或者在application.yml中:

spring:
  h2:
    console:
      enabled: true

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

進(jìn)一步配置H2控制臺(tái)

我們可以通過在項(xiàng)目的application.properties中指定以下屬性來進(jìn)一步配置控制臺(tái):

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選項(xiàng)

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

  • DB_CLOSE_DELAY=-1:確保在JVM運(yùn)行期間數(shù)據(jù)庫保持打開狀態(tài)。
  • DB_CLOSE_ON_EXIT=FALSE:即使JVM關(guān)閉,數(shù)據(jù)庫也保持打開狀態(tài)。
  • AUTO_RECONNECT=TRUE:允許在連接丟失時(shí)自動(dòng)重新連接。
  • 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的集成非常流暢,提供了一個(gè)輕量級(jí)且功能豐富的解決方案,非常適合開發(fā)和測試。通過本文的指南,您應(yīng)該能夠輕松地在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫,并利用其強(qiáng)大的功能。

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

相關(guān)文章

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

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

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

    Java 判斷IP地址的合法性實(shí)例詳解

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

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

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

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

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

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

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

    SpringBoot集成使用Redis及搭建過程

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

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

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

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

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

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

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

    springboot啟動(dòng)腳本start.sh和停止腳本 stop.sh的詳細(xì)教程

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

最新評(píng)論