如何利用jdbc快速插入百万条数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diogy/article/details/53169103

如何利用jdbc快速插入百万条数据


当须要向数据库插入百万条数据时,利用hibernate,mybatis等持久层框架时耗时较久,此时使用jdbc插入效率会更高。此种场景特别适用于读取文件导入到数据库。可以利用批处理来加快jdbc的插入效率。

String sql = "insert into person(id,name) values(?,?)";
Connection c = ConnectionUtil.getConn();
PreparedStatement ps = c.prepareStatement(sql);
for (int i = 0; i < 1000; i++) {
    ps.setInt(1, (i + 1));
    ps.setString(2, "a" + i);
    ps.addBatch();
}
ps.executeBatch();

同时可以增长单条sql语句的长度,如:

String sql = "insert into person(id,name) values(?,?),(?,?)";
Connection c = ConnectionUtil.getConn();
PreparedStatement ps = c.prepareStatement(sql);
ps.setInt(1, 1);
ps.setString(2, "a" + 1);
ps.setInt(3, 2);
ps.setString(4, "a" + 2);
ps.addBatch();
ps.executeBatch();

快速插入百万对象到数据库,可以利用jdbc工具类,方便的插入数据。

JdbcMapper j = new JdbcMapper();
List<Msg> ms = new ArrayList<>();
Msg m = new Msg();
for (int i = 0; i < count; i++) {
    m.setMsgName("aa" + i);
    m.setCreateTime(new Date());
    m.setRemark("inserts");
    ms.add(m);
}
j.insertMillionObjects(ms, 10000, 500);

附:jdbc工具类下载地址,使用介绍

展开阅读全文

没有更多推荐了,返回首页