最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

引言

Spring Boot是一個簡化企業(yè)級Java應(yīng)用程序開發(fā)的強大框架。H2數(shù)據(jù)庫是一個輕量級的、開源的SQL數(shù)據(jù)庫,非常適合用于開發(fā)和測試。本文將指導(dǎo)您如何在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)用程序重啟后會導(dǎo)致數(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ù)庫遷移工具保持一致。當(dāng)我們每次重新創(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)文章

最新評論

浦县| 武邑县| 屏边| 股票| 钦州市| 类乌齐县| 高州市| 张掖市| 通道| 视频| 清水县| 城固县| 阿坝县| 西乌| 峨边| 新源县| 双柏县| 基隆市| 军事| 盐津县| 泽库县| 洛南县| 额尔古纳市| 广南县| 浦北县| 邵武市| 慈溪市| 辽阳县| 景洪市| 富宁县| 赤壁市| 东辽县| 黄陵县| 周宁县| 昌平区| 威宁| 曲阜市| 壶关县| 大姚县| 甘南县| 台湾省|