Spring Boot 集成 H2

来自姬鸿昌的知识库
Jihongchang讨论 | 贡献2023年2月15日 (三) 09:05的版本
跳到导航 跳到搜索

添加依赖

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>

配置

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    #jdbc:h2:file:/path/to/db/file
    driver-class-name: org.h2.Driver
    schema: classpath:db/schema-h2.sql
    username: root
    password: test
  h2:
    console:
      enabled: true
      path: /h2-console
  sql:
    init:
      schema-locations: classpath:db/schema-h2.sql
      data-locations: classpath:db/data-h2.sql

默认还是使用了 Hikari 作为数据库连接池;

H2 可以选择将数据存储在内存还是磁盘上,用 spring.datasource.url 配置:

  • jdbc:h2:mem:testdb 这种就是内存,然后库名是 testdb
  • jdbc:h2:file:/path/to/db/file 这种就是文件

和 Spring Boot 内置的 Web 容器一起用的时候,可以使用 H2 的 Web 控制台,但需要先启用:

spring.h2.console.enabled=true,否则访问就会 404

spring.h2.console.path 配置控制台,默认就是 /h2-console

spring.sql.init.schema-locations 配置数据库初始化的 DDL 脚本

spring.sql.init.data-locations 配置数据库初始化的 DML 脚本


其他常见配置:

https://docs.spring.io/spring-boot/docs/2.7.8/reference/html/application-properties.html#application-properties.data.spring.h2.console.enabled