1.1 什么是 Embedded MySql ?
Embedded MySql库提供了一种在集成测试中运行真实MySql的方法。我们可以通过集成该jar包,实现内嵌式MySQL,不需要安装Mysql,即可进行数据库增删改查等相关操作。
1.2 嵌入式MySql 的使用
首先引入maven依赖
<dependency>
<groupId>com.wix</groupId>
<artifactId>wix-embedded-mysql</artifactId>
<version>4.6.1</version>
<scope>test</scope>
</dependency>
接下来就是Java代码的使用。配置内嵌数据库启动的相关参数。
import com.wix.mysql.config.MysqldConfig;
import com.wix.mysql.EmbeddedMysql;
import static com.wix.mysql.ScriptResolver;
import java.util.concurrent.TimeUnit;
import static com.wix.mysql.config.MysqldConfig.aMysqldConfig;
import static com.wix.mysql.EmbeddedMysql.anEmbeddedMysql;
import static com.wix.mysql.distribution.Version.v5_6_23;
import static com.wix.mysql.config.Charset.UTF8;
public class EmbeddedMysqlConfig {
private EmbeddedMysql mysqld;
public void launchDb(){
//mysql版本
MysqldConfig config = aMysqldConfig(v5_6_23)
.withCharset(UTF8)
//端口号
.withPort(13306)
//用户名密码
.withUser("root", "123456")
//时区
.withTimeZone("Asia/Shanghai")
.withTimeout(2, TimeUnit.MINUTES)
.withServerVariable("max_connect_errors", 666)
.build();
mysqld = anEmbeddedMysql(config)
//初始化数据表结构
.addSchema("aschema", ScriptResolver.classPathScript("db/001_init.sql"))
.addSchema("aschema2", ScriptResolver.classPathScripts("db/*.sql"))
.start();
}
public void stopDb(){
mysqld.stop();
}
}
现在就可以运行实现内嵌mysql的启动。这样每次都得先启动数据库,然后在执行单元测试。我们可以将启动配置到单元测试中。重写SpringJUnit4ClassRunner类,启动时将内嵌数据库同时启动。
详细大家可以参考GitHub源码。
https://github.com/wix/wix-embedded-mysql
来源:CSDN
作者:沉睡的码农
链接:https://blog.csdn.net/qq_20640359/article/details/103972746