从Java批量插入Oracle [英] bulk insert from Java into Oracle

查看:98
本文介绍了从Java批量插入Oracle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在Oracle中快速插入许多小行。 (5个字段)。

I need to insert many small rows rapidly into Oracle. (5 fields).

使用MySQL,我将插入分成100组,然后对每组100个插入使用一个插入语句。

With MySQL, I break the inserts into groups of 100, then use one insert statement for every group of 100 inserts.

但是对于Oracle,用户反馈是质量插入(1000-30000之间)太慢。

But with Oracle, user feedback is that the mass inserts (anywhere from 1000-30000) are too slow.

是否有类似的我可以用来加速从Java到Oracle的程序化插入?

Is there a similar trick I can use to speed up the programmatic inserts from Java into Oracle?

推荐答案

你可以使用Spring的DAO模块批量插入许多行。

You can use Spring's DAO module to batch insert many rows.

在一次更新中将Order对象集合插入数据库的示例:

An example that inserts a collection of Order objects into the database in one update:

public class OrderRepositoryImpl extends SimpleJdbcDaoSupport implements
        OrderRepository {

    private final String saveSql = "INSERT INTO orders(userid, username, coffee, coffeename, amount) "
            + "VALUES(?, ?, ?, ?, ?)";

    public void saveOrders(final Collection<Order> orders) {
        List<Object[]> ordersArgumentList = new ArrayList<Object[]>(orders
                .size());

        Object[] orderArguments;
        for (Order order : orders) {
            orderArguments = new Object[] { order.getUserId(),
                    order.getUserName(), order.getCoffe(),
                    order.getCoffeeName(), order.getAmount() };

            ordersArgumentList.add(orderArguments);
        }

        getSimpleJdbcTemplate().batchUpdate(saveSql, ordersArgumentList);
    }
}

这篇关于从Java批量插入Oracle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆