当前位置: 首页 > news >正文

Java造数工具——datafaker

Datafaker 是 JavaFaker 的现代分支,解决了原项目维护不足的问题,添加了新的数据生成器和功能,完全兼容 JavaFaker 的 API。
官网:https://www.datafaker.net

MAVEN配置:
<dependency><groupId>net.datafaker</groupId><artifactId>datafaker</artifactId><version>2.5.4</version><scope>compile</scope>
</dependency>

 

代码示例:

// 中文数据生成Faker faker = new Faker(Locale.CHINA);// 生成各种类型的真实数据String name = faker.name().fullName(); // 张三String address = faker.address().streetAddress(); // 北京市海淀区中关村大街1号String phone = faker.phoneNumber().cellPhone(); // 13812345678String email = faker.internet().safeEmailAddress("zhangsan"); // zhangsan@example.comString id = faker.idNumber().valid(); // 身份证System.out.println("姓名: " + name);System.out.println("地址: " + address);System.out.println("电话: " + phone);System.out.println("邮箱: " + email);System.out.println("身份证: " + id);//姓名: 牟智辉//地址: 茅巷88672号//电话: 171 4389 8843//邮箱: zhangsan@example.com//身份证: 130400197008209558// 生成数字和日期int age = faker.number().numberBetween(18, 60); // 18-60之间的随机整数String birthDate = faker.timeAndDate().birthday(10, 60, "yyyy-MM-dd"); // 随机生日日期System.out.println("年龄: " + age);System.out.println("生日: " + birthDate);//年龄: 28//生日: 2008-05-16//日期时间System.out.println(faker.timeAndDate().future(1, TimeUnit.HOURS, "yyyy MM.dd mm:hh:ss"));System.out.println(faker.timeAndDate().past(1, TimeUnit.HOURS, "yyyy-MM-dd mm:hh:ss"));System.out.println(faker.timeAndDate().birthday(1, 99, "yyyy/MM/dd"));//2026 05.19 55:05:53//2026-05-19 55:04:50//1993/11/10// 生成一个8位密码,包含至少2个大写字母和3个数字String password = faker.text().text(Text.TextSymbolsBuilder.builder().len(8).with(EN_UPPERCASE, 2).with(DIGITS, 3).build());System.out.println(password);// 83A51Z1YString json = faker.expression("#{json 'person','#{json ''first_name'',''#{Name.first_name}'',''last_name'',''#{Name.last_name}''}','address','#{json ''country'',''#{Address.country}'',''city'',''#{Address.city}''}'}");System.out.println(json);// {"person": {"first_name": "修杰", "last_name": "班"}, "address": {"country": "Barbados", "city": "东莞"}}

 

根据模板生成JSON:
// 根据模板生成JSON@Testpublic void testJsonTransformer() {Faker faker = new Faker(new Locale("zh-CN"));Schema<Object, ?> schema = Schema.of(field("Text", () -> faker.name().firstName()), field("Bool", () -> faker.bool().bool()));JsonTransformer<Object> transformer = JsonTransformer.builder().build();String jsonTemp = transformer.generate(schema, 2);System.out.println(jsonTemp);}

运行结果:

[
{"Text": "文昊", "Bool": false},
{"Text": "思源", "Bool": false}
]

 




http://www.jsqmd.com/news/846650/

相关文章:

  • 【LLM】Qwen
  • 岩棉板优缺点深度对比:藏在你身边的保温真相 - 奔跑123
  • 告别WebKit,拥抱Chromium:Qt WebEngine 5.15 在Windows上的完整配置与避坑指南
  • Midscene.js:彻底颠覆传统UI自动化的终极视觉AI解决方案
  • BilibiliDown:3步快速上手B站视频下载,轻松保存高清视频与音频
  • 【亲测免费】 基于Halcon的图像控件
  • 姓名配对测算系统最新源码 带后台
  • 北京专业化妆工作室技术解析:从妆造到售后的硬核标准 - 奔跑123
  • Node js 服务中集成 Taotoken 多模型聚合 API 的实践
  • 软文发布平台哪个好用?TOP10推荐+第一融媒网实测靠谱首选 - 代码非世界
  • 如何联系靠谱的原代细胞供应商?品牌与厂家选择建议 - 品牌推荐大师
  • OpenClaw 接入 MiniMax 图文指南|极速上手配置
  • 解决方案:MASA模组全家桶中文汉化包,3329条专业翻译解锁技术模组全部潜能
  • Vaadin Framework:现代Java Web应用开发的终极解决方案
  • 如何利用Python工具实现百度网盘高速下载:完整实战指南
  • 电站无人巡检·智慧升级——以科技赋能运维,筑牢安全运行防线
  • 深度解析NVMe-CLI v2.12:5大实战改进指南解决现代存储管理挑战
  • MA730、MT6709、MT6835这几款磁性编码器,到底该怎么选?一份参数对比与实战心得
  • Cadence IC617工艺库安装避坑指南:从CDB转OA到解决analoglib丢失,手把手搞定
  • 北京爵士舞培训机构排行:5家机构实力实测对比 - 奔跑123
  • 现在开始测试评论系统是否正常工作
  • 2026年沈阳市镀镍企业推荐排行/镀镍专业厂/国内推荐镀镍优质工厂 - 品牌推广大师
  • 用Python和LSTM搞定风电功率预测:从数据清洗到区间预测的完整实战(附源码)
  • 儿童厌食挑食不长个,巨可生赖氨葡锌颗粒为什么成安心之选? - 资讯焦点
  • 【免费下载】 探索CARS算法:MATLAB实现与应用【matlab下载】
  • 2026年COD预制试剂哪家数据精准又耐用?质量好、靠谱的头部企业深度解析 - 品牌推荐大师1
  • 高效解决Windows 11 LTSC系统Microsoft Store缺失的完整实战指南
  • 基于SpringBoot的电影院选座购票系统毕业设计源码
  • 在多轮密集对话场景下体验Taotoken服务的响应连贯性
  • LikeShop开源多端商城系统:半年使用记录