10.1Java对Oracle的批处理操作

java连接Oracle,执行批处理操作,性能惊人。先看个例子:

/**
 * Created by 孔垂云 on 2017/4/26.
 */
public class JdbcBatchTest {
    /**
     * 获取数据库连接
     *
     * @return
     */
    public Connection getConn() {
        Connection conn = null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "es", "es");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 批量新增
     */
    public void addBatch() {
        Connection conn = getConn();
        String sql = "insert into staff(name) values(?)";
        try {
            PreparedStatement pstmt = conn.prepareStatement(sql);
            long l = System.currentTimeMillis();
            for (int i = 0; i < 1000000; i++) {
                pstmt.setString(1, "张三" + i);
                pstmt.addBatch();
                if (i % 30000 == 0)
                    pstmt.executeBatch();
            }
            pstmt.executeBatch();
            System.out.println("执行时间:" + (System.currentTimeMillis() - l));
            pstmt = null;
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String[] args) {
        new JdbcBatchTest().addBatch();
    }

连接Oracle数据库,然后执行批量新增。示例表结构简单,只有一个字段,连续插入100万条记录,只需要不到2秒。通过这个例子,可以看出,如果批量新增、修改,可以利用批处理来完成。

源码下载

本例子详细源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景: 阅读新闻 12C CDB模式下RMAN备份与恢复 [日期:2016-11-29] 来源:Linux社区 作...
    阳屯okyepd阅读 9,008评论 0 7
  • 一.数据控制语句(DML)部分 1.INSERT(往数据表里插入记录的语句) INSERTINTO表名(字段名1,...
    浮浮尘尘阅读 8,967评论 0 19
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 10,263评论 0 11
  • 看着车站熙熙攘攘的人群,嘈杂的声音不绝于耳,但并不觉得很吵,相反的是我竟然觉得“滑稽”,因为一个诺大的屋子,因...
    一个有点理想的文艺青年阅读 1,215评论 0 0
  • 算一算,简书上的文章已经停更近一个月了。其中的理由很是戏剧,因为春节后我一直担心自己得了乳腺癌。 对健康没了信心,...
    一晨思阅读 2,990评论 6 6