首页 > 编程语言 >java实现的开源mocker造数神器,10分钟可完成千万级别数据的造数-入门篇

java实现的开源mocker造数神器,10分钟可完成千万级别数据的造数-入门篇

时间:2024-09-03 18:35:52浏览次数:10  
标签:10 java String 3.4 造数 mocker public Mocker

java实现的开源mocker造数神器,10分钟可完成千万级别数据的造数-入门篇


如果你还在为数据库表造数烦恼?如果你还在造数上花费一天、一周、甚至更多的时间……也许Mocker(模客)能帮你排忧解难。

造数是一件令人头疼、繁琐而又无趣的事情,但有些时候它又是开发过程中不可避免的一个阶段。

我们常用的造数方法

  1. 少量数据也许可以通过人工手动一行一行造
  2. 稍微多一点要做个excel工具进行数据模拟并导入
  3. 数据量再大一点可能就得写脚本(如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;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

 

引入maven依赖

<dependency>
<groupId>io.gitee.jaemon</groupId>
<artifactId>mocker</artifactId>
<version>1.1.0</version>
</dependency>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

 

Mocker配置文件

# 数据库配置
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mockdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=root
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

Mocker配置文件路径: resources/mocker.properties

 

执行字段值生成处理类生成程序

public class MockerApp {

public static void main(String[] args) {
// 生成表字段值生成处理类
DataMockStarter.generate("/home/jaemon/mocker");
}
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

运行程序,在/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);
}
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

 

源码地址

 ​Mocker Gitee​


原文链接:https://blog.51cto.com/u_15891990/5908808

标签:10,java,String,3.4,造数,mocker,public,Mocker
From: https://www.cnblogs.com/sunny3158/p/18395174

相关文章

  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的旅游景区管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的旅游景区管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的旅游景区管理系统项目,大学生可以在实践中学习和提升自己......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的鲜花商城管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的口腔牙科诊所预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的口腔预约管理系统项目,大学生可以在实践中学习和......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的音乐推荐管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的音乐推荐管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的音乐推荐管理系统项目,大学生可以在实践中学习和提升自己......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的酒店客房预订管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的酒店客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的酒店客房管理系统项目,大学生可以在实践中学习和提升......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的家具管理系统
    项目简介该项目是基于Java+Springboot+Vue开发的家具管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的家具管理系统项目,大学生可以在实践中学习和提升自己的能力,为......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的医院门诊预约挂号系统
    项目简介该项目是基于Java+Springboot+Vue开发的医院门诊预约挂号系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的门诊预约挂号管理系统项目,大学生可以在实践中学习和......
  • 【课程设计/毕业设计】基于Java+Springboot+Vue开发的反诈视频宣传系统
    项目简介该项目是基于Java+Springboot+Vue开发的反诈视频宣传系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的反诈视频宣传管理系统项目,大学生可以在实践中学习和提升......
  • 【JavaEE初阶】JVM内存划分和类加载过程以及垃圾回收
    目录......
  • Java基础语法之注释与标识符
    注释分类:1:单行注释(//+注释):可以注释一行文字2:多行注释(/+星号+注释+星号+/):可以注释一段文字3:文档注释注意:1:平时编写代码在代码量比较少时可以看懂自己写的,但当项目结构一旦复杂,就需要用到注释2:注释并不会被执行,是给我们写代码的人看的3:书写注释是一个非常好的习惯,一般大公司......