java 随机生成对象_利用Java随机,生成随机学生数据

本文介绍了如何使用Java生成随机学生数据,以模拟向数据库大量插入操作。通过Java的Math.random()方法生成各种随机值,如姓名、QQ号、专业和入学时间,并展示了随机生成代码的实现。同时,讨论了Java中不同类型的随机数生成方法及其适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement、batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据。

一、要生成的学生数据

students表设计如下:

c1a6d86d46e8df742b2f6ff831580a91.png

其中前三项是数据库自动生成的,后面的10项需要程序生成。

>>基于实际要求,插入的Student数据中,major和jnshuId不能同时相同。但由于随机数的不确定性,在程序中限制两个Student的major和jnshuId不同时相同复杂而低效。因此,选择在数据库中将major和jnshuId设为联合唯一性索引,然后在插入数据时忽略重复值。

因此,设计RandomStudent类如下:

通过getStudent方法生成学生数据,其中的各种getXxx方法都是随机生成各种数据的静态方法。

public staticStudent getStudent() {

Student stu= newStudent(getName(), getMajor(), getJnshuId());

stu.setQq(getQq());

stu.setEntryTime(getEntryTime());

stu.setSchool(getSchool());

stu.setDailyUrl(getDailyUrl());

stu.setDesire(getDesire());

stu.setJnshuBro(getJnshuBro());

stu.setKnowFrom(getKnowFrom());returnstu;

}

二、Java中的随机

Java中常见的有三种随机方式:

java.lang.Math.random():返回一个0≤x<1.0的double值。在一次JVM的运行中,只创建一个伪随机数生成器,之后对该方法的所有调用,都是通过该生成器来生成随机数。此方法是同步的,可以在多线程中正确运行,但如果有大量线程需要高速生成随机数,对该生成器的争用会降低效率。

java.util.Random类:实现更多功能的随机数生成。每创建一个对象就会创建一个伪随机数生成器,只要seed不同,生成的随机数序列就会不同;seed相同时,生成的随机数序列完全相同。该类有两种构造方法:

Random():用某个seed创建一个随机数生成器。在一次JVM的运行中,创建每个随机数生成器的seed都不同。也就是说,用此方法创建的多个random对象,生成的随机数序列一定不同(除非用setSeed方法改变seed)。在多线程中,可以每个线程中创建一个random对象,这样就避免了对随机数生成器的争用。

Random(long seed):用给定seed创建随机数生成器。可通过相同seed创建random对象,生成相同的随机数序列。

java.security.SecureRandom类:提供强加密随机数生成器。

这里不需要用到多线程,也不需要多样化的随机数生成方法,选择Math.random()即可。

注意,用于生成int随机数时,(int) (x*Math.random())生成的随机数范围为0~x-1。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值