设为首页 加入收藏

TOP

JDBC批量处理
2015-11-21 01:58:27 来源: 作者: 【 】 浏览:0
Tags:JDBC 批量 处理

必要的文字描述:

当需要成批插入或者更新记录时。可以采用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);
        }
        
    }
    
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java连接,操作MongoDB 下一篇SQL必知必会笔记第十九章使用存储..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: