数据插入

插入数据的方式(二)

使用 Values.of()系列方法生成随机取值范围

Values类共有以下8种生成随机取值范围方法,如下表:

方法名 取值范围 示例值
Values.of(可变长数组) 从可变长数组中任意抽取一个值 "优品", "良品", "次品"
Values.ofIntRange(起始值,结束值) 在[起始值, 结束值]的范围内取一个整数 33
Values.ofLongRange(起始值,结束值) 在[起始值, 结束值)的范围内取一个长整型数 777777777L
Values.ofFloatRange(起始值,结束值) 在[起始值, 结束值]的范围内取一个单精度浮点数,默认精确到小数点后2位 22.22f
Values.ofFloatRange(起始值,结束值,精度) 在[起始值, 结束值]的范围内取一个单精度浮点数,精度根据参数设置,最多6位 123.333333f
Values.ofDoubleRange(起始值,结束值) 在[起始值, 结束值]的范围内取一个双精度浮点数,默认精确到小数点后2位 788.31d
Values.ofDoubleRange(起始值,结束值,精度) 在[起始值, 结束值]的范围内取一个双精度浮点数,精度根据参数设置,最多6位 1820.4231d
Values.ofTimeRange(开始时间,结束时间) 在[开始时间, 结束时间]的范围内取一个时间,精确到秒 2018-03-14 13:21:11

另外,Times类中还有用于设定时间的两个方法:

方法名 说明
Times.of(年,月,日) 用于生成时间,精确到日
Times.of(年,月,日,时,分,秒) 用于生成时间,精确到秒

使用示例:

// 给product表的9个字段填充1条数据
Faker.tableName("product")
      .param("type", Values.of("优品", "良品", "次品"))
      .param("person_count", Values.ofIntRange(20, 50))
      .param("total_count", Values.ofLongRange(555555555L, 888888888L))
      .param("enter_price", Values.ofFloatRange(12.33f, 34.57f))
      .param("outcome_price", Values.ofFloatRange(100.004132f, 240.281424f, 6))
      .param("speed", Values.ofDoubleRange(750.34d, 800.27d))
      .param("salary", Values.ofDoubleRange(1980.3415d, 2700.2315d, 4))
      .param("firstTime", Values.ofTimeRange(Times.of(2018,3,22), Times.of(2018,10,22)))
      .param("secondTime", 
             Values.ofTimeRange(
                Times.of(2018,3,22,11,23,24), 
                Times.of(2018,10,22,22,15,17)
             )
       )
      .insertCount(1)
      .execute();

对应生成的SQL语句如下:

insert into 
product(
  type, person_count, total_count,
  enter_price, outcome_price, speed,
  salary, firstTime, secondTime
) 
values(
  '良品', 33, 777777777,
  22.22, 123.333333, 788.31,
  1820.4231, '2018-03-14 00:00:00', '2018-03-14 13:21:11'
)

results matching ""

    No results matching ""