数据插入
插入数据的方式(二)
使用 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'
)