1. 程式人生 > >jdbc oracle 百萬級資料量儲存

jdbc oracle 百萬級資料量儲存

使用jdbc連線oracle資料庫進行百萬級資料插入操作。

預設的插入操作 

insert into tablename()values()
每進行一條記錄的插入都會進行commit提交操作,因此使得儲存速度受到極大的影響,那麼如何解決此類問題呢?

兩種方法:

一、通過設定commit提交動作為非預設形式,然後設定每插入3000行(根據自己具體需求設定)進行一次提交

Class.forName("oracle.jdbc.driver.OracleDriver");
   conn = DriverManager.getConnection("jdbc: oracle:thin: @127.0.0.1:1521:abc", "scott", "tiger");
   conn.setAutoCommit(false);//設定預設提交方式為false
   stmt = conn.createStatement();
   state.execute(sql);
   conn.commit();//提交事務
二、按照批次進行插入,然後根據自己需求進行統一批次提交
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc: oracle:thin: @127.0.0.1:1521:abc", "scott", "tiger");
            state = conn.createStatement();
            for (String sql : sqlList)
            {
                state.addBatch(sql);
                if (++count % 1000 == 0)
                {
                    state.executeBatch();
                    System.out.println("現已完成"+count+"條記錄插入");
                }
            }
            state.executeBatch();


歸結起來其實兩種方法原理是一樣的,都是按照批次進行儲存。大大提高了資料儲存效率,此兩種方法省略了事務提交失敗回滾的操作,大家可以根據需要進行回滾操作。