【问题标题】:Need a Fake data generator for Java console application需要一个用于 Java 控制台应用程序的假数据生成器
【发布时间】:2016-04-28 06:20:49
【问题描述】:

我需要一个用于基于控制台的 jdbc 应用程序的假数据生成器(例如,用于一个人的个人信息,如名字、姓氏、电子邮件等)。 因为我想将随机人的那些数据添加到 MySQL 数据库中。

我的 MySQL 代码如下:

String url1 = "jdbc:mysql://localhost:3306/restaurant";
String user = "root";
String password = "root";

conn1 = DriverManager.getConnection(url1, user, password);
if (conn1 != null) {
    System.out.println("Connected to the database restaurant");
   // I want add data generator here.
}

【问题讨论】:

    标签: java console-application data-generation


    【解决方案1】:

    你有DataFactory。它生成名称(甚至是一些特定的地区名称)、地址、出生日期或其他日期、一般随机字符串,你甚至可以给它一些随机数组来生成,等等

    编辑:使用示例

    为了每次获得不同的输出,请使用 Random() 的种子创建它。最好的种子是纳米时间:

    DataFactory df1 = DataFactory.create(System.nanoTime());
    

    每次创建它,都会得到不同的输出。

    【讨论】:

    • 是的,这很好,但如果我尝试使用 100 条随机记录,然后再次尝试使用 100 条,那么它会返回相同的记录。所以这对我来说是不可行的。
    • 是的,你是对的。该库的作者将随机种子硬编码为 93285:github.com/swung/datafactory/blob/master/src/org/datafactory/…
    • 你有没有像 jfairy 之类的其他解决方案?
    • 我用过一次,不需要重复所以之前没有注意到这个。我将尝试分叉这个项目并解决这个问题,看看它是否有帮助。今天会告诉你进展如何。
    • 我的错误,我正在使用分叉和错误的数据工厂库。您应该使用原始的github.com/andygibson/datafactory,但是,您必须使用特定的构造函数。我会用详细信息更新我的答案。
    【解决方案2】:

    您可以使用 jFairy。这将最适合您。 项目的github链接:https://github.com/Codearte/jfairy/tree/master/src/main

    代码示例:

      Fairy fairy = Fairy.create();
        Person person = fairy.person();
        System.out.println(person.fullName()); 
    

    【讨论】:

    • 嗨,我试过这个,但我在 jfair “VATIdentificationNumberProvider.java”的这个页面上得到了错误。所以它没有工作。
    【解决方案3】:

    您可以签出randomizer 以生成随机数据。此库有助于从给定的模型类创建随机数据。在示例代码下方签出。

    public class Person {
    
       @FirstName
       String mFirstName;
    
       @LastName
       String mLastName;
    
       @Email
       String  mEmailId;
    
    }
    
    //Generate random 100 Person(Model Class) object 
    Generator<Person> generator = new Generator<>(Person.class);  
    List<Person> persons = generator.generate(100);                          
    

    由于有许多内置的数据生成器可以使用注释访问,您也可以构建自定义数据生成器。我建议您阅读库页面上提供的文档。

    【讨论】:

      【解决方案4】:

      您可以使用 dummycreator 库来生成虚拟对象dummycreator

      可以这样使用

      public static <T> T create(final Class<T> clazz) {
          return dummyCreator.create(clazz);
      }
      

      更多,你可以指定绑定来指定如何生成一些类。

      static {
          bindings.add(String.class, new RandomStringFactory());
          bindings.add(Examination.class, new RandomExaminationFactory());
      }
      

      【讨论】:

      • 您好,谢谢您的回复。但我没有得到确切的。我已经在我的项目中添加了这个 jar。但是,如果我需要人员随机信息,那么我需要做什么。请指教。
      【解决方案5】:

      我最近编写了一个名为 MockNeat 的库。它允许您引导数据生成。

      在 wiki 页面上,detailed tutorial 介绍了如何以编程方式为您的应用程序生成 SQL 插入。

      【讨论】:

        猜你喜欢
        • 2016-05-26
        • 2017-03-16
        • 1970-01-01
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        • 2011-05-12
        • 1970-01-01
        • 2012-12-23
        相关资源
        最近更新 更多