springboot集成h2数据库

springboot集成h2数据库

1. H2数据库简介

H2是一个轻量级的内存数据库,同时也支持数据持久化,并提供了数据库管理的Web界面。

使用方式:
  1. 下载并直接运行:从官网下载H2的JAR包,解压缩后执行bin目录下的h2.bath2.sh文件,在弹出的Web操作页面中进行数据库操作。
  2. Spring Boot内嵌使用:通过POM文件引入H2依赖,并进行相应的配置。启动服务后,可以通过指定的URL页面访问并操作数据库。
JDBC连接模式:

H2支持四种连接模式:

  • 本地内存模式:数据仅存在于内存中,不会持久化。
  • 本地文件系统持久化模式:数据可以持久化到本地文件系统。
  • TCP/IP服务器模式:支持多客户端通过TCP/IP协议进行连接。
  • 混合模式:首个客户端通过本地连接,其他客户端通过TCP/IP协议连接。

2. 为什么选择H2数据库

  1. 免安装:H2可以作为一个JAR包内嵌到应用程序中,类似于Spring Boot内嵌Tomcat,非常方便。
  2. 全面的JDBC支持:H2支持标准的JDBC URL连接方式,并提供事务支持,与MySQL类似。

3.如何使用

在我的业务场景中,数据需要持久化,因此这里使用本地文件系统持久化模式来演示。同时,实际使用H2时也离不开Flyway的管理,因此下面的例子也将集成Flyway。

1.引入依赖

在实际使用过程中,我发现Flyway的版本与H2存在兼容性问题。高版本的Flyway会导致information_schema.settings表字段发生变化,从而在初始化时引发查询错误。因此,我们选择回退到一个较低版本的Flyway。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>springboot-common-test</artifactId>
        <groupId>com.gwliuc</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.h2study</groupId>
    <artifactId>my-h2-study</artifactId>
    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>1.4.200</version>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>6.5.7</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
    </dependencies>

</project>

2.添加配置

server:
  port: 8180
spring:
  h2:
    console:
      path: /h2-console
      enabled: true
  datasource:
    url: jdbc:h2:D:\\data\\DEVICE_V2
    driver-class-name: org.h2.Driver
    username: GUANLI
    password: 123456
  flyway:
    enabled: true
    sql-migration-prefix: v
    sql-migration-suffixes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值