Spring Boot 2.x 实践记:H2 Database

目录

  1. H2 Database
  2. Maven
  3. H2 配置
  4. 初始化表与插入数据
  5. H2 Console
  6. 小结

TL;DR

今天,我们一起来快速学习下如何在 Spring Boot 2 下配置H2数据库。

H2作为内存数据库,被广泛应用于本地单元测试,开发环境数据表操作,临时数据存储等。

1. H2 Database

什么是 H2 Database?

H2是用Java编写的流行的内存数据库之一,它可以嵌入Java应用程序中,以客户端-服务器模式运行。

Spring Boot 2 集成并使用属性配置为H2提供了支持,并且为了更加方便使用,H2还提供了一个Console控制台来查看数据库,同时还能视图化地执行SQL操作。

2. Maven

Spring Boot 2.x 开始,连接数据库时需要引入spring-boot-starter-jdbc 依赖。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.4.193</version>
    <scope>runtime</scope>
</dependency>

3. H2 配置

3.1. 简单配置

Spring Boot 提供了非常简单的配置项,可以使用简单的属性连接到任何数据库。

spring.datasource.url=jdbc:h2:mem:testdb
#spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

这里,用户名使用sa,密码留空,另外,驱动可以不配,Spring Boot 2会自动识别。

3.2. 持久化配置

使用内存数据库的一大弊端在于:当我们重新启动应用时,所有存储的数据都会丢失。

在这种情况下,数据只能作为临时内存数据,即便如此,我们还是希望能有一个类似临时文件,可以帮助我们保存临时数据。

H2也提供了持久化的配置方法。

# 临时内存存储
spring.datasource.url = jdbc:h2:mem:testdb
 
# 临时文件存储
spring.datasource.url = jdbc:h2:file:/data/sample

更多持久化,参见:官网database_url说明

4.初始化表与插入数据

为了方便使用,我们可以初始化一些数据来模拟测试,Spring Boot 通过将sql文件放入资源文件夹(/src/main/resources/)来实现即可。

  • schema.sql:初始化表结构
  • data.sql:插入默认数据

schema.sql

DROP TABLE IF EXISTS TEST_MAN;

CREATE TABLE TEST_MAN (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  user_name VARCHAR(250) NOT NULL,
  email VARCHAR(250) DEFAULT NULL
);

data.sql

INSERT INTO
	TEST_MAN (user_name, email) 
VALUES
	('Mia', 'abc@email.com'),
	('Max', 'efg@email.com'),
	('Spike', 'xyz@email.com');

初始化配置,通过打开schema和data来开启。
application.properties

spring.datasource.schema=classpath:db/schema.sql
spring.datasource.data=classpath:db/data.sql

5. H2 Console

5.1. 开启H2 Console

默认情况下,H2数据库的控制台视图处于关闭状态。

我们如果想在浏览器中查看和访问它,需要手动打开配置。同时,我们还可以自定义H2控制台的URL,比如,/h2

spring.h2.console.enabled=true
spring.h2.console.path=/h2

5.2. 访问H2 Console

在浏览器中输入如下URL,可以查看与访问控制台。

http://localhost:8080/h2

在这里插入图片描述
输入配置的用户名和密码,就能看到预先通过SQL文件插入的表结构和默认数据。
在这里插入图片描述

6. 小结

到此,我们学习了如何快速使用简单的属性配置,来初始化和访问H2数据库。

欢迎留言评论。

参考资源

  • github代码地址:

application.properties 最终配置

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

# 开启 H2 Console
spring.h2.console.enabled=true

# 自定义 H2 Console 的URL路径
spring.h2.console.path=/h2

#初始化
spring.datasource.schema=classpath:db/schema.sql
spring.datasource.data=classpath:db/data.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值