1. 引言
Spring Boot 以其简洁的配置和快速开发能力,成为现代微服务架构的首选框架之一。而H2数据库作为一个轻量级的内存数据库,非常适合开发阶段作为嵌入式数据库进行单元测试和功能验证。本文将手把手教你如何在Spring Boot项目中集成H2数据库,实现数据的快速存取与管理。
2. H2数据库所需依赖
<dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>compile</scope>
</dependency>
3. H2数据库application.yaml配置文件
spring:datasource:url: jdbc:h2:~/userdriver-class-name: org.h2.Driverusername: rootpassword: 123456h2:console:path: /h2-console #h2嵌入式数据库控制台enabled: true
4. 初始化h2数据库
注意:
schema为初始化sql路径
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.ApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.datasource.init.ScriptUtils;
import org.springframework.stereotype.Service;import javax.annotation.PostConstruct;
import javax.sql.DataSource;
import java.io.File;/*** 初始化h2数据库*/
@Slf4j
@Service
// DataSource创建完后才初始化此类
@AutoConfigureAfter(DataSource.class)
public class H2DataSourceConfig {//初始化sqlprivate static final String schema = "classpath:db/schema-h2.sql";@AutowiredDataSource dataSource;@AutowiredApplicationContext applicationContext;@PostConstructpublic void init() throws Exception {//初始化本地数据库String userHome = System.getProperty("user.home");//获取系统用户目录File f = new File(userHome + File.separator + "h2.lck");if (!f.exists()) {log.info("--------------初始化h2数据----------------------");f.createNewFile();Resource resource = applicationContext.getResource(schema);ScriptUtils.executeSqlScript(dataSource.getConnection(), resource);} else {log.info("--------------h2数据库已经存在----------------------");}}
}
5. 初始化sql语句
在resources目录下创建db/schema-h2.sql
文件。
DROP TABLE IF EXISTS student;
CREATE TABLE student
(id BIGINT NOT NULL COMMENT 'id',name VARCHAR(30) COMMENT '姓名',age INT COMMENT '年龄',PRIMARY KEY (id)
);
insert into student(id,name,age) values(1, 'zhangsan',23);
insert into student(id,name,age) values(2, 'lisi',45);
insert into student(id,name,age) values(3, 'wangwu',12);
6. 启动项目
访问路径为:http://localhost:8080/h2-console
7. 访问数据库
1. 填写登录信息,如下图所示:
2. 如果有student表,并且有数据,说明数据库配置成功