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