在pom.xml中引入依赖
<dependencies>
<dependency>
<groupId>org.fluttercode.datafactory</groupId>
<artifactId>datafactory</artifactId>
<version>0.8</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
</dependencies>
DbUtil.java
package cn.testData.util;
import java.sql.Connection;
import java.sql.DriverManager;
public class DbUtil {
private String dbUrl="jdbc:oracle:thin:@172.28.28.112:1521:orcl";
private String dbUserName="bh";
private String dbPassword="bh";
private String jdbcName="oracle.jdbc.driver.OracleDriver";
/**
* 获取数据库连接
* @return
* @throws Exception
*/
public Connection getCon() throws Exception{
Class.forName(jdbcName);
Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);
return con;
}
/**
* 关闭数据库连接
* @param con
* @throws Exception
*/
public void closeCon(Connection con) throws Exception{
if(con!=null){
con.close();
}
}
public static void main(String[] args) {
DbUtil dbUtil=new DbUtil();
try {
dbUtil.getCon();
System.out.println("数据库连接成功");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
UUIDUtil.java
package cn.testData.util;
import java.util.UUID;
public class UUIDUtils {
public static String getUUID(){
return UUID.randomUUID().toString().replace("-","");
}
}
CommonUtil.java
package cn.testData.util;
import java.util.Random;
public class CommonUtil {
public static String getName() {
Random random = new Random();
String[] Surname = {"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈", "褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
"何", "吕", "施", "张", "孔", "曹", "严", "华", "金", "魏", "陶", "姜", "戚", "谢", "邹", "喻", "柏", "水", "窦", "章", "云", "苏", "潘", "葛", "奚", "范", "彭", "郎",
"鲁", "韦", "昌", "马", "苗", "凤", "花", "方", "俞", "任", "袁", "柳", "酆", "鲍", "史", "唐", "费", "廉", "岑", "薛", "雷", "贺", "倪", "汤", "滕", "殷",
"罗", "毕", "郝", "邬", "安", "常", "乐", "于", "时", "傅", "皮", "卞", "齐", "康", "伍", "余", "元", "卜", "顾", "孟", "平", "黄", "和",
"穆", "萧", "尹", "姚", "邵", "湛", "汪", "祁", "毛", "禹", "狄", "米", "贝", "明", "臧", "计", "伏", "成", "戴", "谈", "宋", "茅", "庞", "熊", "纪", "舒",
"屈", "项", "祝", "董", "梁", "杜", "阮", "蓝", "闵", "席", "季"};
String girl = "秀娟英华慧巧美娜静淑惠珠翠雅芝玉萍红娥玲芬芳燕彩春菊兰凤洁梅琳素云莲真环雪荣爱妹霞香月莺媛艳瑞凡佳嘉琼勤珍贞莉桂娣叶璧璐娅琦晶妍茜秋珊莎锦黛青倩婷姣婉娴瑾颖露瑶怡婵雁蓓纨仪荷丹蓉眉君琴蕊薇菁梦岚苑婕馨瑗琰韵融园艺咏卿聪澜纯毓悦昭冰爽琬茗羽希宁欣飘育滢馥筠柔竹霭凝晓欢霄枫芸菲寒伊亚宜可姬舒影荔枝思丽 ";
String boy = "伟刚勇毅俊峰强军平保东文辉力明永健世广志义兴良海山仁波宁贵福生龙元全国胜学祥才发武新利清飞彬富顺信子杰涛昌成康星光天达安岩中茂进林有坚和彪博诚先敬震振壮会思群豪心邦承乐绍功松善厚庆磊民友裕河哲江超浩亮政谦亨奇固之轮翰朗伯宏言若鸣朋斌梁栋维启克伦翔旭鹏泽晨辰士以建家致树炎德行时泰盛雄琛钧冠策腾楠榕风航弘";
int index = random.nextInt(Surname.length - 1);
String name = Surname[index]; //获得一个随机的姓氏
int i = random.nextInt(3);//可以根据这个数设置产生的男女比例
if(i==2){
int j = random.nextInt(girl.length()-2);
if (j % 2 == 0) {
name = name + girl.substring(j, j + 2);
} else {
name = name + girl.substring(j, j + 1);
}
}
else{
int j = random.nextInt(girl.length()-2);
if (j % 2 == 0) {
name = name + boy.substring(j, j + 2);
} else {
name = name + boy.substring(j, j + 1);
}
}
return name;
}
public static int getNum(int start,int end) {
return (int)(Math.random()*(end-start+1)+start);
}
/**
* 返回手机号码
*/
private static String[] telFirst="134,135,136,137,138,139,150,151,152,157,158,159,130,131,132,155,156,133,153".split(",");
public static String getTel() {
int index=getNum(0,telFirst.length-1);
String first=telFirst[index];
String second=String.valueOf(getNum(1,888)+10000).substring(1);
String third=String.valueOf(getNum(1,9100)+10000).substring(1);
return first+second+third;
}
public static String getLOAN_PURPOSE(){
int [] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,99};
//产生0-(arr.length-1)的整数值,也是数组的索引
int index=(int)(Math.random()*arr.length);
int rand = arr[index];
String LOAN_PURPOSE = String.valueOf(rand);
return LOAN_PURPOSE;
}
/**
* 生成具体位数的随机字母加数字
* @return
*/
public static String genRandomNum(){
int maxNum = 36;
int i;
int count = 0;
char[] str = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while(count < 22){
i = Math.abs(r.nextInt(maxNum));
if (i >= 0 && i < str.length) {
pwd.append(str[i]);
count ++;
}
}
return pwd.toString();
}
}
表中具体插入字段及sql
package cn.testData;
import java.sql.Connection;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.fluttercode.datafactory.impl.DataFactory;
import cn.testData.util.DbUtil;
import cn.testData.util.CommonUtil;
import cn.testData.util.UUIDUtils;
public class BIcl2 {
public static void main(String[] args) throws Exception {
DbUtil dbUtil = new DbUtil();
Connection con = dbUtil.getCon();
Statement statement = con.createStatement();
for(int i=0; i<20; i++){
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS",Locale.CHINESE);
DataFactory df = new DataFactory();
String REQ_ID = df.getRandomChars(36);
String OP_CODE = "A";
// UPLOAD_TS
Date minDate = df.getDate(1980, 1, 1);
Date maxDate = df.getDate(2019, 2, 21);
Date UPLOADTS = df.getDateBetween(minDate, new Date());
String UPLOAD_TS1 = sdf.format(df.getDateBetween(minDate, new Date()));
String UPLOAD_TS = "TO_TIMESTAMP('"+UPLOAD_TS1+"', 'YYYY-MM-DD HH24:MI:SS:FF6')";
System.out.println("UPLOAD_TS:"+UPLOAD_TS);
// name
String NAME = CommonUtil.getName();
// pid
String P_ID = df.getNumberText(18);
// 循环授信账户编号
String CREDIT_ACCNT_ID = CommonUtil.genRandomNum();
System.out.println(CREDIT_ACCNT_ID);
// 借据编号
String BILLING_ID = CommonUtil.genRandomNum();
// termNo
int termNo = df.getNumberUpTo(99999);
// TERM_STATUS
String TERM_STATUS = "1";
// TARGET_REPAYMENT_DATE
String TARGET_REPAYMENT_DATE1 = sdf.format(df.getDateBetween(minDate, maxDate));
String TARGET_REPAYMENT_DATE = "TO_TIMESTAMP('"+TARGET_REPAYMENT_DATE1+"', 'YYYY-MM-DD HH24:MI:SS:FF6')";
// REAL_REPAYMENT_DATE
String REAL_REPAYMENT_DATE1 = sdf.format(df.getDateBetween(minDate, maxDate));
String REAL_REPAYMENT_DATE = "TO_TIMESTAMP('"+REAL_REPAYMENT_DATE1+"', 'YYYY-MM-DD HH24:MI:SS:FF6')";
// PLANNED_PAYMENT
int PLANNED_PAYMENT1 = df.getNumberUpTo(2000000);
Double PLANNED_PAYMENT = Double.valueOf(PLANNED_PAYMENT1);
// TARGET_REPAYMENT
int TARGET_REPAYMENT1 = df.getNumberUpTo(2000000);
Double TARGET_REPAYMENT = Double.valueOf(TARGET_REPAYMENT1);
// REAL_REPAYMENT
int REAL_REPAYMENT1 = df.getNumberUpTo(2000000);
Double REAL_REPAYMENT = Double.valueOf(REAL_REPAYMENT1);
// OVERDUE_STATUS 0
// STATUS_CONFIRM_AT
String STATUS_CONFIRM_AT1 = sdf.format(df.getDateBetween(minDate, maxDate));
String STATUS_CONFIRM_AT = "TO_TIMESTAMP('"+STATUS_CONFIRM_AT1+"', 'YYYY-MM-DD HH24:MI:SS:FF6')";
// OVERDUE_AMOUNT 0
// CREDIT_USAGE
int CREDIT_USAGE1 = df.getNumberUpTo(2000000);
Double CREDIT_USAGE = Double.valueOf(CREDIT_USAGE1);
// BILLING_STATUS
int BILLING_STATUS1 = df.getNumberBetween(1, 4);
String BILLING_STATUS = "" + BILLING_STATUS1;
// DEPT_CODE
String DEPT_CODE = "dept_code";
String sql = "INSERT INTO BICL2 VALUES('"+UUIDUtils.getUUID()+"', 'A', "+UPLOAD_TS+", '"+NAME+"','"+P_ID+"','"+CREDIT_ACCNT_ID+"','"+BILLING_ID+"',"+termNo+",'"+TERM_STATUS+"',"+TARGET_REPAYMENT_DATE+","+REAL_REPAYMENT_DATE+","+PLANNED_PAYMENT+","+TARGET_REPAYMENT+","+REAL_REPAYMENT+",'',"+STATUS_CONFIRM_AT+",'',"+CREDIT_USAGE+",'"+BILLING_STATUS+"','"+DEPT_CODE+"')";
System.out.println(sql);
statement.execute(sql);
}
con.close();
}
}