如何利用jdbc快速插入百萬條數據

如何利用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工具類下載地址,使用介紹

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章