您的位置:首页 > 编程语言 > Java开发

用java快速批量insert数据

2016-01-31 15:36 603 查看
由于要项目准备上线,所以要准备大量测试数据测试新项目的性能,但是又不太会用存储过程和数据库事务进行数据插入。

最开始使用最简单的java的for循环语句不停的add对象,但是发现这个效率太低,要插入几百万数据估计得一天,于是在网上找了下,找到一篇直接使用jdbc直接插入数据的,拿下来试了下发现性能虽然比new对象好,但是效率也很低。

只能再找,终于找到一个很高的,也就是使用批次提交方式的sql执行,这个100万数据大概也就30秒左右。

[java]
view plain
copy

print?





public static void insertRelease() {  
        Long begin = new Date().getTime();  
        String sql = "INSERT INTO tb_big_data (count, create_time, random) VALUES (?, SYSDATE(), ?)";  
        try {  
            conn.setAutoCommit(false);  
            PreparedStatement pst = conn.prepareStatement(sql);  
            for (int i = 1; i <= 100; i++) {  
                for (int k = 1; k <= 10000; k++) {  
                    pst.setLong(1, k * i);  
                    pst.setLong(2, k * i);  
                    pst.addBatch();  
                }  
                pst.executeBatch();  
                conn.commit();  
            }  
            pst.close();  
            conn.close();  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
        Long end = new Date().getTime();  
        System.out.println("cast : " + (end - begin) / 1000 + " s");  
    }  

原文地址:http://blog.csdn.net/frinder/article/details/38830723
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: