SpringBoot集成H2
简介
数据库H2是一款用java语言编写的开源关系型数据库。
该数据库十分适合作为嵌入式数据库使用,来简便一些小型项目快速搭建及运行。
该文章主要讲作为嵌入式数据库使用。
H2的优势
- 纯Java编写,不受平台的限制;
- 只有一个jar文件,适合作为嵌入式数据库使用;
- h2提供了一个十分方便的web控制台用于操作和管理数据库内容;
- 功能完整,支持标准SQL和JDBC。麻雀虽小五脏俱全;
- 支持内嵌模式、服务器模式和集群。
h2支持运行三种模式
Embedded (嵌入式) : 无需配置本地(或远程)数据库 ; 数据库连接关闭时,数据与表结构依然存在;
In-Memory (内存模式): 同上,区别:数据库连接关闭时,数据与表结构删除;
ServerMode(传统模式) : 需要配置本地(或远程)数据库;
内存模式的数据库URL
jdbc:h2:mem:
jdbc:h2:mem:<databaseName>
jdbc:h2:mem:test_mem
jdbc:h2:tcp://localhost/mem:db1
嵌入模式的URL
jdbc:h2:[file:][<path>]<databaseName>
jdbc:h2:~/test
jdbc:h2:file:/data/sample
jdbc:h2:file:C:/data/sample (Windows only)
server模式
jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
jdbc:h2:tcp://localhost/~/test
jdbc:h2:tcp://dbserv:8084/~/sample
jdbc:h2:tcp://localhost/mem:test
jdbc:h2:ssl://<server>[:<port>]/[<path>]<databaseName>
jdbc:h2:ssl://localhost:8085/~/sample;
h2结合springboot使用
添加依赖
可以根据自己的项目选择对应的包
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
配置application.yml
spring:
datasource:
driver-class-name: org.h2.Driver
schema: classpath:db/schema.sql #,每次启动程序,程序都会运行schema.sql文件,对数据库的数据操作
data: classpath:db/data.sql #,每次启动程序,程序都会运行data.sql文件,对数据库的数据操作
url: jdbc:h2:file:./db/h2db #配置h2数据库的连接地址,该项目主要以嵌入式
username: root
password: 123456
h2:
console:
enabled: true #开启web console功能
schema.sql
DROP TABLE IF EXISTS user;
CREATE TABLE user
(
id BIGINT(20) NOT NULL COMMENT '主键ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年龄',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (id)
);
data.sql
INSERT INTO user (id, name, age, email) VALUES
(1, 'Eli', 18, 'Eli@example.com'),
(2, 'Jack', 10, 'Jack@example.com'),
(3, 'Tom', 28, 'Tom@example.com'),
(4, 'Sandy', 21, 'Sandy@example.com'),
(5, 'Billie', 24, 'Billie@example.com');
User.java
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
UserDao.java
@Mapper
public interface UserDao extends BaseMapper<User> {
}
H2Application.java
@SpringBootApplication
public class H2Application {
public static void main(String[] args) {
SpringApplication.run(H2Application.class,args);
}
@Resource
private UserDao userMapper;
@RestController
public class TestController {
@GetMapping(value = "/users")
public List<User> users() {
return userMapper.selectList(null);
}
}
}
测试
访问http://localhost:8080/users

Web管理
访问http://localhost:8080/h2-console
填写数据库连接信息,测试连接

h2的web管理页面


浙公网安备 33010602011771号