前言

SqlFaker

轻量级、易拓展的数据库智能填充Java开源库

Maven CentralLicense

Github地址:https://github.com/lkmc2/SqlFaker

简介

SqlFaker是一个Java开发的可快速为数据库生成大量仿真的工具,仅需简单的配置,即可为数据库表批量插入有规律的类似真实数据的内容,可用于数据库调优等操作。

开源库特性

  • 支持主流的MySQL、Oracle、SQL Server、Sqlite、H2等数据库

  • 支持8种常见数据库字段类型的智能填充,并支持自定义拓展

  • 支持一次性插入亿万级别的数据

  • 支持JDK1.6及以上版本

  • 支持事务

使用示范

// 创建数据库连接
DBTools.url("jdbc:mysql://localhost:3306/facker")
        .username("root")
        .password("123456")
        .connect();

// 给user表的四个字段填充5条数据
Faker.tableName("user")
      .param("name", DataType.USERNAME)
      .param("age", DataType.AGE)
      .param("sex", DataType.SEX)
      .param("birthday", DataType.TIME)
      .insertCount(5)
      .execute();

上述代码将生成如下SQL语句,并在数据库中执行:

insert into user(name,age,sex,address,birthday) values('武叹霜',21,'山西省晋城市泽州县庆达路463号','2018-02-24 10:56:37')
insert into user(name,age,sex,address,birthday) values('顾什可',50,'广西壮族自治区柳州市融水苗族自治县德堡路419号','2018-04-09 08:10:22')
insert into user(name,age,sex,address,birthday) values('蔡静随',46,'河南省郑州市巩义市广延路240号','2018-06-11 23:02:19')
insert into user(name,age,sex,address,birthday) values('韦丸赤',27,'河南省焦作市博爱县浦润路148号','2018-02-22 15:52:50')
insert into user(name,age,sex,address,birthday) values('任徐',54,'河南省新乡市延津县汉源路14号','2018-07-07 03:48:51')

更新日志

  • v1.0.5:支持一次性插入亿万级别的数据。
  • v1.0.4:添加针对Oracle、Sqlite、H2的FakerCreator,并添加可生成有序数据的Generator类。
  • v1.0.3:添加针对SQL Server的FakerCreator。
  • v1.0.2:添加针对MySQL的FakerCreator。
  • v1.0.1:提高数据插入执行速度。
  • v1.0.0:可一次插入百万级别的仿真数据到数据库中。

PS:如果有任何建议,可以在Github的Issues中提出,如添加DataType的默认类型等。

License

The SqlFaker is released under version 2.0 of the Apache License.

results matching ""

    No results matching ""