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

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

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

引言

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

依賴關(guān)系

首先,我們需要在項(xiàng)目的pom.xml文件中添加H2數(shù)據(jù)庫(kù)和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ù)庫(kù)配置

Spring Boot默認(rèn)配置應(yīng)用程序連接到一個(gè)內(nèi)存存儲(chǔ)的H2數(shù)據(jù)庫(kù),用戶名為sa,密碼為空。我們可以通過(guò)在application.properties文件中添加以下屬性來(lái)自定義這些設(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ù)庫(kù)持久化

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

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

或者在YAML文件中:

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

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

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

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

我們可以使用SQL腳本來(lái)初始化數(shù)據(jù)庫(kù)。在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è)文件來(lái)初始化數(shù)據(jù)庫(kù)。我們可以通過(guò)將spring.sql.init.mode屬性設(shè)置為never來(lái)禁用這種默認(rèn)行為。此外,還可以配置多個(gè)SQL文件來(lái)加載初始數(shù)據(jù)。

Hibernate和data.sql

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

spring.jpa.defer-datasource-initialization=true

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

訪問(wèn)H2控制臺(tái)

H2提供了一個(gè)嵌入式的GUI控制臺(tái),用于瀏覽數(shù)據(jù)庫(kù)內(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)用程序后,訪問(wèn)http://localhost:8080/h2-console即可使用H2控制臺(tái)。在登錄頁(yè)面使用配置的數(shù)據(jù)庫(kù)URL和憑據(jù)進(jìn)行登錄。

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

我們可以通過(guò)在項(xiàng)目的application.properties中指定以下屬性來(lái)進(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ù)庫(kù)URL選項(xiàng)

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

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

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

相關(guān)文章

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

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

    這篇文章主要介紹了Springboot集成定時(shí)器和多線程異步處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    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()?無(wú)法去除空格的問(wèn)題解決方案

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

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

    SpringBoot集成使用Redis及搭建過(guò)程

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

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

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

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

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

    Java?Collections工具類(lèi)中常用算法解析

    在軟件開(kāi)發(fā)中,算法是非常重要的一部分,它們可以提供高效的數(shù)據(jù)處理和操作,這篇文章主要為大家介紹了Collections?工具類(lèi)集合框架中常用算法,感興趣的可以了解一下
    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)論