码迷,mamicode.com
首页 > 数据库 > 详细

JDBC 批量处理

时间:2015-08-26 13:58:27      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:jdbc   java   oracle   批量处理   数据库   

必要的文字描述:

当需要成批插入或者更新记录时。可以采用Java的批量更新机制,

这一机制允许多条语句一次性提交给数据库批量处理。通常情况下比单独提交处理更有效率;
JDBC的批量处理语句包括下面两个方法:
addBatch(String):添加需要批量处理的SQL语句或是参数;
executeBatch();执行批量处理语句;
通常我们会遇到两种批量执行SQL语句的情况:
多条SQL语句的批量处理;

一个SQL语句的批量传参;

简洁的代码:

    /** 
     * <一句话功能简述>批量处理插入10000条数据
     * <功能详细描述>
     * @see [类、类#方法、类#成员]
     */
    public void update()
    {
        String sql = "insert into t_emp13 (first_name,salary) values (?,?)";
        Connection conn = null;
        PreparedStatement preparedStatement = null;
        ResultSet result = null;
        
        long begin = System.currentTimeMillis();
        
        try
        {
            conn = getConn();
            conn.setAutoCommit(false);
            preparedStatement = conn.prepareStatement(sql);
            
            // 将参数放到preparedStatement的未知参数中
            
            for (int i = 0; i < 10000; i++)
            {
                preparedStatement.setString(1, "name_" + i);
                preparedStatement.setObject(2, i);
                // 积攒SQl
                preparedStatement.addBatch();
                // 当积攒到一定程度 就统一执行一次,并且清空积攒的sql
                if (0 == (i + 1) % 300)
                {
                    preparedStatement.executeBatch();
                    preparedStatement.clearBatch();
                }
            }
            
            if (0 != 10000 % 300)
            {
                preparedStatement.executeBatch();
                preparedStatement.clearBatch();
            }
            
            conn.commit();
            
            long end = System.currentTimeMillis();
            System.out.println(begin - end);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            releaseSource(preparedStatement, conn, result);
        }
        
    }
    

版权声明:本文为博主原创文章,未经博主允许不得转载。

JDBC 批量处理

标签:jdbc   java   oracle   批量处理   数据库   

原文地址:http://blog.csdn.net/cuigaochong/article/details/48001995

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!