SpringBoot 集成H2数据库

时间:2022-10-06 17:56:49 类型:数据库
字号:    

  概述h2数据库

  h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库

  H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

  可以同应用程序打包在一起发布

  它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态

  提供JDBC访问接口,提供基于浏览器的控制台,可以执行sql

  免费,开源,够快

  还方便了程序刚开始dao层单元测试测试,不需要搭建oracle,不需要加载mysql,快速测试写的dao

  

  SpringBoot整合测试

<!--h2数据库-->
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

  yml配置

spring:
  datasource:
    #配置h2数据库的连接地址
    # Embedded 嵌入式
    # Remote (client/server) 远程连接
    # In-Memory 内存
    url: jdbc:h2:file:F:/java/h2/db/test
    #通过H2 Database Engine先创建好数据库https://h2database.com/html/main.html
    #配置JDBC Driver
    driver-class-name: org.h2.Driver
    #配置数据库用户名
    username: root
    #配置数据库密码
    password: 123456
    #进行该配置,程序开启时就会启动h2 web consloe。当然这是默认的,如果你不想在启动程序时启动h2 web consloe,那么就设置为false。
  h2:
    console:
      enabled: true
      #进行该配置,你就可以通过YOUR_URL/h2访问h2 web consloe。YOUR_URL是你程序的访问URl。默认为/h2-console
      path: /h2
      # 进行该配置后,h2 web consloe就可以在远程访问了。否则只能在本机访问。
      settings:
        web-allow-others: true

  数据库支持多种连接模式和连接设置,主要有 Embedded 嵌入式,Remote (client/server) 远程连接,In-Memory 内存

  Embedded 嵌入式

  URL jdbc:h2:〜/test表示数据库存储在用户主目录中以“ test”开头的文件中。 支持绝对位置,如jdbc:h2:/data/db/test。 在嵌入式模式下,数据库与应用程序以相同的过程运行。 任何时候都只能有一个进程访问数据库。 如果您拥有权限,则不存在的数据库将自动创建。 形式为jdbc:h2:./data/test的URL相对于当前工作目录(启动应用程序的目录)。 建议使用相对于〜或绝对位置的位置。

  Remote (client/server) 远程连接

  URL jdbc:h2:tcp//localhost/〜/test表示通过TCP / IP连接到此计算机上运行的H2 TCP服务器,并在用户主目录中打开一个名为test的数据库。 必须首先启动服务器。 任意数量的客户端都可以连接到同一数据库。 适用与嵌入式数据库相同的位置规则。

  In-Memory 内存

  URL jdbc:h2:mem:test意味着打开一个名为“test”的内存数据库。数据不持久,当最后一个数据库连接关闭时,数据会丢失。多个线程可以访问同一个数据库,但是数据只能在同一个进程中可见。


     1.jpg

<