springboot整合h2数据库

Scroll Down

H2数据库介绍

  H2是一个使用 Java 编写的数据库,支持内存、文件等多种模式,经常用于项目的测试环境。它本身只是一个jar包,可以直接嵌入到应用项目中,同应用程序打包在一起发布,Java应用启动时,数据库便启动了,这样可以非常方便地存储少量结构化数据。

H2有三种运行模式。
1、内嵌模式(Embedded Mode)
  内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。 可持久化,但同时只能一个客户端连接。内嵌模式性能会比较好。
2、服务器模式(Server Mode)
  使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。
3、混合模式(Mixed Mode)
  第一个应用以内嵌模式启动它,对于后面的应用来说它是服务器模式跑着的。混合模式是内嵌模式和服务器模式的组合。第一个应用通过内嵌模式与数据库建立连接,同时也作为一个服务器启动,于是另外的应用(运行在不同的进程或是虚拟机上)可以同时访问同样的数据。第一个应用的本地连接与嵌入式模式的连接性能一样的快,而其它连接理论上会略慢。

官网:https://h2database.com/html/main.html

springboot整合H2数据库

持久层使用hibernate

maven依赖

H2

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

JPA

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

application.yml配置

spring:
  h2:
    console:
      enabled: true  #H2数据库开启web控制台访问
  datasource:
    url: jdbc:h2:file:./db/atdb;AUTO_SERVER=TRUE
    username: autotask
    password: AT@123
  jpa:
    hibernate:
      ddl-auto: update  #程序启动自动建表,自动根据实体类更新表结构
  • ./db/atdb为数据库文件存放路径,atdb会作为库名
  • AUTO_SERVER=TRUE代表开启混合模式,数据库支持多个连接同时访问,不会程序连接后,控制台就无法访问。

实体类

@Data
@Entity
@Table(name = "my_table")
public class MyEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column
    private String name;
}

访问web控制台

启动项目时,会自动进行建表。
web控制台端口同应用端口,访问地址为:localhost:port/h2-console
image.png