java实现的开源mocker造数神器,10分钟可完成千万级别数据的造数-入门篇
如果你还在为数据库表造数烦恼?如果你还在造数上花费一天、一周、甚至更多的时间……也许Mocker(模客)能帮你排忧解难。
造数是一件令人头疼、繁琐而又无趣的事情,但有些时候它又是开发过程中不可避免的一个阶段。
我们常用的造数方法
- 少量数据也许可以通过人工手动一行一行造
- 稍微多一点要做个excel工具进行数据模拟并导入
- 数据量再大一点可能就得写脚本(如python等)来造数
以上这些方式一般来说都需要一定的时间成本投入,为了杜绝这种不必要的开发时间成本浪费,Mocker因此而生。
Mocker本着你写逻辑我造数原则服务于你的造数需求,百万级别数据量造数不再需要一天、一周甚至更多的时间,Mocker只需要10分钟甚至更少。
待模拟数据表结构
CREATE TABLE `mk_user` (
`id` bigint(18) NOT NULL AUTO_INCREMENT COMMENT '主键自增长',
`user_name` varchar(55) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '账户名称',
`password` varchar(55) DEFAULT NULL COMMENT '账户密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
引入maven依赖
<dependency>
<groupId>io.gitee.jaemon</groupId>
<artifactId>mocker</artifactId>
<version>1.1.0</version>
</dependency>
Mocker配置文件
# 数据库配置
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mockdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=root
Mocker配置文件路径: resources/mocker.properties
执行字段值生成处理类生成程序
public class MockerApp {
public static void main(String[] args) {
// 生成表字段值生成处理类
DataMockStarter.generate("/home/jaemon/mocker");
}
}
运行程序,在/home/jaemon/mocker路径下会生成 MockdbColumnHandlerEnum枚举类文件,文件内容如下
public enum MockdbColumnHandlerEnum implements TableColumnsHandler {
// mk_user-账户名称-varchar(55)
USER_NAME {
@Override
public String generate(String tableName, Map<String, Object> values) {
return null;
}
},
// mk_user-账户密码-varchar(55)
PASSWORD {
@Override
public String generate(String tableName, Map<String, Object> values) {
return null;
}
};
MockdbColumnHandlerEnum() {}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
编写MockdbColumnHandlerEnum枚举类字段值生成逻辑
public enum MockdbColumnHandlerEnum implements TableColumnsHandler {
// mk_user-账户名称-varchar(55)
USER_NAME {
@Override
public String generate(String tableName, Map<String, Object> values) {
return RandomUtils.randomCNName();
}
},
// mk_user-账户密码-varchar(55)
PASSWORD {
@Override
public String generate(String tableName, Map<String, Object> values) {
return RandomUtils.generateCharNums(8);
}
};
MockdbColumnHandlerEnum() {}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
执行数据模拟程序
public class MockerApp {
public static void main(String[] args) {
// 模拟数据库表数据生成
DataMockStarter.mock(MockdbColumnHandlerEnum.class);
}
}
源码地址
Mocker Gitee
原文链接:https://blog.51cto.com/u_15891990/5908808
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2022-09-03 Insomnia的下载
2022-09-03 Spring Boot 全局异常处理@ControllerAdvice
2022-09-03 com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server 报错问题
2022-09-03 SpringBoot启动时报错:The bean 'dataSource', defined in BeanDefinition defined in class path resource
2022-09-03 @ControllerAdvice全局异常处理
2022-09-03 spring cloud 多模块打包部署解决坑
2022-09-03 引入版本问题 spring-cloud版本:Finchley.RC1 和 spring-boot版本:2.0.4.RELEASE Non-resolvable import POM: Failure to find org.springframework.cloud:spring-cloud-dependencies