SpringBoot与H2的整合
由于springBoot提供了H2的默认配置,如果使用是的springBoot则不需要新增h2的配置。默认配置如下:
提示:如果不是基于SpringBoot的测试,则需要加上这几项配置
H2数据库初始化
由于h2是内存数据库,不能保存表结构,在每次测试环境准备的时候都要先初始化好需要用到的表结构。
我们在在test/resources目录下新建一个schema.sql文件,这个文件将在初始化数据源的时候被引用到。建表语句如下:
CREATE TABLE `User` ( `AutoId` bigint(20) NOT NULL AUTO_INCREMENT, `UserId` bigint(20) NOT NULL COMMENT '用户Id', `UserName` varchar(64) NOT NULL COMMENT '用户姓名', `Age` int(10) NOT NULL COMMENT '年龄', `PointValue` int(11) NOT NULL DEFAULT '0' COMMENT '积分', `Status` smallint(6) NOT NULL DEFAULT '0' COMMENT '记录可用状态', `CreateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建日期', `LastModifyTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后修改日期', PRIMARY KEY (`AutoId`) ); |
下面是初始化数据源的代码:
@Bean public DataSource h2DataSource(){ EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); EmbeddedDatabase database = builder.setType(EmbeddedDatabaseType.H2) .addScript("classpath:schema.sql") ///启动时初始化建表语句 .build(); return database; } |
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.195</version> <scope>test</scope> </dependency> |