package com.wyx.hibernate;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import org.hibernate.Session;
import com.wyx.hibernate.utils.HibernateUtils;
public class InitData {
public static void main(String[] args) {
addStudent();
addwuye();
}
public static void addStudent(){
for(int i = 1; i <= 10; i++){
Group group = new Group();
group.setName("班级"+i);
for(int j = 1; j<= 10; j++){
User user = new User();
//调用生成随机时间的方法
user.setCreateTime(randomDate("2008-8-8","2011-3-28"));
user.setName("班级"+i+"的学生" + j );
user.setGroup(group);
Session session = HibernateUtils.getSession();
session.beginTransaction();
try {
session.save(user);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
}
public static void addwuye(){
for(int i = 1; i <= 10; i++){
User user = new User();
user.setCreateTime(new Date());
user.setName("无业游民"+i);
Session session = HibernateUtils.getSession();
session.beginTransaction();
try {
session.save(user);
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
//生成随机时间的方法
private static Date randomDate(String beginDate, String endDate) {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date start = format.parse(beginDate);// 构造开始日期
Date end = format.parse(endDate);// 构造结束日期
// getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
if (start.getTime() >= end.getTime()) {
return null;
}
long date = random(start.getTime(), end.getTime());
return new Date(date);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private static long random(long begin, long end) {
long rtn = begin + (long) (Math.random() * (end - begin));
// 如果返回的是开始时间和结束时间,则递归调用本函数查找随机值
if (rtn == begin || rtn == end) {
return random(begin, end);
}
return rtn;
}
}
分享到:
相关推荐
在画布上绘制随机生成的字符串,每个字符的位置和颜色都是随机的,这样可以增加识别难度。使用`Font`类创建不同样式和大小的字体,然后用`Graphics2D`的`drawString()`方法绘制。 6. **保存为图像**: 使用`...
验证码通常包含一组随机生成的字符,这些字符可以是中文、字母、数字或它们的组合。在Java中,可以使用`java.util.Random`类来生成随机数,然后通过字符集映射将这些数字转化为对应的字符。例如,如果要生成数字...
Java 生成随机字符串数组的实例详解 Java 生成随机字符串数组的实例详解是一种常见的编程任务,主要是利用Collections.sort()方法对泛型为String的List进行排序。下面是一个详细的实例详解,介绍了生成随机字符串...
在Java编程语言中,生成随机字符串是一项常见的任务,特别是在创建密码、唯一标识符或测试数据时。本示例代码提供了一个名为`PassWord`的类,该类包含了一个枚举`TYPE`,用于定义不同类型的随机字符组合。下面将详细...
在这个项目"Android随机生成验证码自定义View"中,我们将会探讨如何构建一个能够生成不同类型的验证码的自定义View,包括数字、字母、数字字母混合以及汉字验证码,并且可以灵活设置验证码的位数。 首先,我们要...
数字和字母(大写、小写)、混合特殊字符等多种组合,自定义输出的长度和批量生成数量可任意组合需要的字符进行随机密码字符生成,可以作为随机密码密钥生成器用于项目测试使用,也可以自行决定使用用途
本文介绍的Java自定义加密算法通过随机生成不同类型的字符并结合随机排序和校验和机制,有效地提高了加密字符串的安全性。这种算法适用于一些需要简单加密处理的场合,但需要注意的是,对于高度敏感的数据,建议使用...
java生成四位随机数,包含数字和字母 区分大小写,特别适合做验证码,android开发
java主键生成,通过自定义前缀加时间生成机制,是主流项目的常用方法,有的是通过JAVA实现,有的是通过存储过程,其实都差不多
主键是Long型的id生成方法,Java实现.snowflake算法.
2、这是一个用于生成随机彩票号码的Java代码,包括双色球6+1和大乐透彩票。用户可以自定义幸运数字并快速生成多注号码。 3、随机数生成模块使用了Java的Random类来确保生成的数字的随机性。 4、用户需要在运行代码前...
本Android Demo主要展示了如何创建一个自定义View,并实现点击事件(onClick)以随机生成数字的功能。下面将详细讲解这个过程中的关键知识点。 1. **自定义View**: 自定义View是Android开发中常见的需求,它允许...
若要生成更复杂的序列码,如包含时间戳、UUID等元素,可以结合其他类库,如`java.time`包下的日期时间API,或`java.util.UUID`类。 综上所述,Java通过`Random`或`SecureRandom`类可以方便地生成随机序列码,满足...
验证码通常由一组随机生成的字符组成,这些字符可能是数字、字母或其他特殊符号,它们被绘制在一个图片上,并通过扭曲、旋转、添加噪声等方式增加识别难度,以防止机器自动识别。在Android中,我们可以利用自定义...
将随机生成的字符渲染到图像上,需要注意字体的选择和颜色的搭配。在Python中,可以使用`ImageDraw`模块的`draw.text()`方法;Java则可以使用`Graphics2D`类的`drawString()`方法。 8. **存储与验证**: 生成的...
这篇博客"java 自定义信息 生成验证码"可能讲述了如何在Java中自定义生成验证码的过程。 首先,生成验证码的基本步骤包括: 1. **生成随机字符串**:这可以通过Java的`Random`类或`SecureRandom`类来实现,生成指定...
Java中的Xeger是一个非常有用的工具,它允许开发者根据指定的正则表达式生成随机的数据。Xeger是基于Java的org.apache.commons.text.RandomStringGenerator类和org.apache.commons.lang3.RandomStringUtils库的一个...
在编程中,通常会使用随机数生成器来创建这些密码,例如Java的`java.util.Random`类,Python的`random`模块,或者C++的`<random>`库。 其次,指定长度的密码意味着用户可以根据安全性需求自定义密码的复杂度和长度...
在Java中,我们可以创建一个自定义的验证码生成类来实现这一功能。这篇博客文章“java验证码生成类”提供了一个简单的示例,下面我们将深入探讨验证码生成的相关知识点。 首先,验证码的基本原理是生成一段随机的、...
本示例着重讲解如何实现一个自定义View来随机生成数字验证码,这是一个常见的安全验证机制,常用于防止自动机器人操作。我们将深入探讨自定义View的创建流程以及`onMeasure`方法的测绘原理。 首先,创建自定义View...