【示例】Hibernate中读取txt的文件内容并插入到数据库

项目需要加一万条测试数据,如果用手来加的话不得累死呀,所以就得用代码来执行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文件内容,一行一个数据

Slience的CSDN地址CSDN博客
Slience的简书地址简书博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值