湖北季风小子的gravatar头像
湖北季风小子 2017-04-11 15:30:56

java jdbc批量操作大量oracle数据如何提高性能?

有100万条数据,如何使用jdbc批量修改oracle里数据效率更高,目前每修改十条数据是3~4秒。下面是我写的代码,该如何改进呢

public boolean saveLocation(String[] obj1,String[] obj) { try { int[] row; conn = jdbcUtils.getConnection(); stmt = conn.createStatement(); String[] sql = new String[10]; for(int i=0;i0){ return true; } } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return false; }

所有回答列表(2)
leiyuanqiang的gravatar头像
leiyuanqiang  LV3 2017年4月14日

用批处理方法:

public boolean updateLocation(String[] obj1,String[] obj) throws SQLException { 
        Connection conn = getConnection();
        try{
            // 保存当前自动提交模式
            boolean autoCommit = conn.getAutoCommit();
            // 关闭自动提交
            conn.setAutoCommit(false);
            Statement stmt = conn.createStatement();
            // 使用Statement同时收集多条sql语句
            String[] sql = new String[10]; 
            for(int i=0;i<10;i++){
                stmt.addBatch(sql[i]);
            } 
            // 同时提交所有的sql语句
            stmt.executeBatch();
            // 提交修改
            conn.commit();
            conn.setAutoCommit(autoCommit);
        } catch( Exception e){
            e.printStackTrace();
            conn.rollback(); 
        }
        return false; 
    }

评论(0) 最佳答案
ling20010406的gravatar头像
ling20010406 2017年4月30日

好难的问题

顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友