前段时间做项目,数据表字段有点多,为了方便测试,得给数据库添加数据,手动添加简直要命,就写了这个小东西。
大致逻辑
- 随机生成字段值
- 拼接成sql语句
- 输出到.sql文件
- 在数据库中执行sql文件
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Random;
public class SQLMaker {
public static void main(String[] args) {
test();
}
// 示例测试方法
private static void test(){
try {
FileOutputStream fos = new FileOutputStream("test.sql"); // 输出文件路径及文件名
for (int i = 0; i < 1000; i++) {
// 数据库语句
StringBuilder sql = new StringBuilder(
"insert into user(username,password,sex,birthday,email,address,comment) values('");
char name1 = randomChar();
char name2 = randomChar();
char name3 = randomChar();
sql.append(name1).append(name2).append(name3).append("','") // 用户名
.append(randomNumStr(100000,999999)).append("','")
.append(randomSex()).append("','")
.append(randomDate(1900,2020)).append("','")
.append(randomEmail(8)).append("','")
.append("北京-市辖区-朝阳区").append("','")
.append(randomAz(3))
.append("');\n");
fos.write(sql.toString().getBytes(StandardCharsets.UTF_8));
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 随机生成常见汉字字符
*/
private static char randomChar(){
return (char) (0x4e00 + (int) (Math.random() * (0x9fa5 - 0x4e00 + 1)));
}
/**
* 随机生成邮箱
* @param length 邮箱地址长度
*/
private static String randomEmail(int length){
return randomAz(length) + "@qq.com";
}
/**
* 随机生成大小写字母字符串
* @param length 字符串长度
*/
private static String randomAz(int length){
StringBuilder sb = new StringBuilder();
for (int i = 0; i < length; i++) {
if(new Random().nextInt(2) == 1){
sb.append((char) randomNum(65,90)); // 大写字母65-90 97-122小写
}else {
sb.append((char) randomNum(97,122)); // 大写字母65-90 97-122小写
}
}
return sb.toString();
}
/**
* 随机生成日期字符串
* @param min 最小年份
* @param max 最大年份
*/
private static String randomDate(int min, int max){
return randomNumStr(min, max) + "-" + randomNumStr(1,12) + "-" + randomNumStr(1,12);
}
/**
* 随机生成数字字符串
* @param min 最小值
* @param max 最大值
*/
private static String randomNumStr(int min, int max){
return String.valueOf(randomNum(min, max));
}
/**
* 随机生成数字
* @param min 最小值
* @param max 最大值
*/
private static int randomNum(int min, int max){
return (int) (Math.random() * (max - min) + min);
}
/**
* 随机生成性别
*/
private static String randomSex(){
int sex = new Random().nextInt(2);
if (sex == 1){
return "男";
}else {
return "女";
}
}
}
再粘一部分输出数据
insert into user(username,password,sex,birthday,email,address,comment) values('簧信瀉','897596','女','1948-8-2','WdgXUarT@qq.com','北京-市辖区-朝阳区','VJa');
insert into user(username,password,sex,birthday,email,address,comment) values('莤艄阤','399943','男','1984-2-9','lQyOCbuF@qq.com','北京-市辖区-朝阳区','cFt');
insert into user(username,password,sex,birthday,email,address,comment) values('哟簈焧','123708','女','1966-9-8','SOMqUXXj@qq.com','北京-市辖区-朝阳区','gHK');
insert into user(username,password,sex,birthday,email,address,comment) values('槇碌鶹','996161','女','2004-7-6','bCywviBt@qq.com','北京-市辖区-朝阳区','Afj');
insert into user(username,password,sex,birthday,email,address,comment) values('货醒儜','827849','男','1969-1-10','WyRkwkJJ@qq.com','北京-市辖区-朝阳区','MCi');
insert into user(username,password,sex,birthday,email,address,comment) values('垡犼燞','768005','女','1939-4-8','hjMUcXkn@qq.com','北京-市辖区-朝阳区','lEC');
insert into user(username,password,sex,birthday,email,address,comment) values('訏蒧疦','302994','女','1988-5-7','xigTPQGT@qq.com','北京-市辖区-朝阳区','cMq');
insert into user(username,password,sex,birthday,email,address,comment) values('燙駺檳','818952','女','1955-11-1','dAdNvMSh@qq.com','北京-市辖区-朝阳区','NuV');
insert into user(username,password,sex,birthday,email,address,comment) values('竄簯退','324433','女','2014-10-4','dSAXueXF@qq.com','北京-市辖区-朝阳区','kEE');
insert into user(username,password,sex,birthday,email,address,comment) values('鲹奔扆','303002','女','1977-4-2','wTAndFWI@qq.com','北京-市辖区-朝阳区','Pey');
insert into user(username,password,sex,birthday,email,address,comment) values('盖墫訕','631808','男','1908-2-1','vuKRdhTw@qq.com','北京-市辖区-朝阳区','vCl');
insert into user(username,password,sex,birthday,email,address,comment) values('埿辡駴','716334','女','1902-6-8','JlFPoFiN@qq.com','北京-市辖区-朝阳区','nXG');
insert into user(username,password,sex,birthday,email,address,comment) values('臵喋蟒','899392','男','1991-8-5','gYXAhCtE@qq.com','北京-市辖区-朝阳区','NFP');
insert into user(username,password,sex,birthday,email,address,comment) values('毅貫啨','863353','女','1909-11-6','OiNdDQCc@qq.com','北京-市辖区-朝阳区','Ppj');
insert into user(username,password,sex,birthday,email,address,comment) values('笽狕徧','157121','男','2002-8-9','ewUPFxti@qq.com','北京-市辖区-朝阳区','Uhj');
insert into user(username,password,sex,birthday,email,address,comment) values('晞唂円','506126','女','1985-3-2','ncReUfSI@qq.com','北京-市辖区-朝阳区','IWr');
简单轮子,各位根据情况使用。