IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 数据库假数据插入 template-db-faker -> 正文阅读

[大数据]数据库假数据插入 template-db-faker

项目简介

github地址:https://github.com/chy1024/template-db-faker

一个向db中插入假数据的模板,基于 springboot + mybatis 构建。

pom.xml 中引入的数据库驱动是 mysql 8.x,可根据需要调整。

随机数据生成组件:使用的是国人开源的 common-random

?

效果图

执行日志在这里插入图片描述?
数据表
在这里插入图片描述
?

使用示例

我提供了2个示例:t_user、t_student,可按照以下步骤使用

1、在数据库中执行 resources/sql脚本/DDL.sql 中的建表语句

2、修改 yml 中的数据源配置

3、执行 com.chy.template.db.faker.service 下对应的单元测试,往db中插入假数据

?

向自定义的数据表中插入假数据

1、创建数据表,并在entity包下创建对应的实体类

2、在mapper包下创建对应的mapper接口,并在 resources/mapper 下编写对应的xml映射文件

//继承DbFakerMapper,泛型指定对应的实体类,无需定义方法
public interface UserMapper extends DbFakerMapper<User> {

}
<!-- 需要实现 DbFakerMapper 中的2个方法:①批量插入,②清空表 -->

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.chy.template.db.faker.mapper.UserMapper">

    <insert id="batchInsert">
        insert into t_user (`username`, `tel`, `address`, `birthday`) values
        <foreach collection="list" item="user" separator=",">
            (#{user.username}, #{user.tel}, #{user.address}, #{user.birthday})
        </foreach>
    </insert>

    <delete id="truncateTable">
        truncate table t_user
    </delete>

</mapper>

?
3、根据需要修改yml中的配置
?

4、在 service.impl 包下编写对应的service

/**
 * 继承 AbstractDbFakerService,泛型指定对应的实体类
 * 实现 getMapper()、generateFaker() 2个方法,根据需要选择重写 getCountOfEachBatch() 方法
 */
@Slf4j
@Service
public class UserDbFakerService extends AbstractDbFakerService<User> {

    @Resource
    private UserMapper userMapper;

    @Override
    protected DbFakerMapper getMapper() {
        return userMapper;
    }

/*
    @Override
    public int getCountOfEachBatch(){
        return 1000;
    }
*/

    @Override
    public User generateFaker() {
        //随机中文用户名,最大长度8个汉字
        String username = PersonInfoSource.getInstance().randomChineseNickName(8);
        String tel = PersonInfoSource.getInstance().randomChineseMobile();
        String address = AreaSource.getInstance().randomAddress();

        //生日,1950~2000的随机时间
        LocalDate beginDate = LocalDate.of(1950, 1, 1);
        LocalDate endDate = LocalDate.of(2000, 1, 1);
        String randomDateStr = DateTimeSource.getInstance().randomDate(beginDate, endDate, "yyyy-MM-dd");
        //允许此字段为null
        Date birthday = null;
        try {
            birthday = DateFormat.getDateInstance().parse(randomDateStr);
        } catch (ParseException e) {
            log.error("String类型的时间转换为Date对象出错,randomDateStr={}", randomDateStr, e);
        }

        return User.builder()
                .username(username)
                .tel(tel)
                .address(address)
                .birthday(birthday)
                .createTime(new Date())
                .build();
    }

}

?
5、编写对应的单元测试,往db插入假数据

@SpringBootTest
@RunWith(SpringRunner.class)
public class UserDbFakerServiceTest {

    @Resource
    private UserDbFakerService userDbFakerService;

    @Test
    public void test() {
        //清空已有数据
        userDbFakerService.cleanAllFaker();
        //插入新数据
        userDbFakerService.batchInsertFaker(1000000);
    }

}
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:49:30  更:2022-04-18 17:49:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:31:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码