项目需要加一万条测试数据,如果用手来加的话不得累死呀,所以就得用代码来执行SQL语句,这一万条数据其中就包含了人名、手机号等内容,手机号可以通过138+Math.random()来解决但是人名就得用真实的人名了,本想用百家姓+任意汉字组合来实现的但是组合出来的人名不像是真的人名真巧我这里有份名单,前后加起来有5千多人,执行两次有点重复不要紧,但是五千个人名怎么放到sql语句中去呢?我们就需要把人名按照一行一个的方式放在txt文件中,再通过FileInputStream来读取出那些人名。
//文件存放目录
File file = new File("src/name.txt");
//设置编码格式
InputStreamReader reader = new InputStreamReader(new FileInputStream(file), "utf-8");
BufferedReader bufferedReader = new BufferedReader(reader);
String lineTxt = null;
int count = 0;
//获取Session
Session session = DBTool.getSession();
session.beginTransaction();
while((lineTxt = bufferedReader.readLine()) != null) {
String sql = "insert into person_inf(username,mobile,password,avatar_url,last_login_time,last_login_ip,reg_time,sport_label_ids) VALUES('"+lineTxt+"','150"+(int)(Math.random()*90000000+10000000)+"','29c84097ef22ce8d3d2205567f4061d0','/Uploads/Avatar/2016/07/21/147_1469088371.jpg',1468729621,1468729621,146872"+(int)(Math.random()*9000+1000)+",'1,2,3,6,5,4,7,8,9,12,11,10')";
session.createSQLQuery(sql).executeUpdate();
count++;
if(count % 100 == 0) {
//每插入100行就提交一次,不然会出现奇怪的事情哦
session.getTransaction().commit();
session = DBTool.getSession();
session.beginTransaction();
}
}
session.getTransaction().commit();
reader.close();
这样就可以实现自动插入数据库啦~,建议弄之前先看看可以获取得到txt文件中的内容没有
这是txt文件内容,一行一个数据
网友评论