从Java批量插入Oracle [英] bulk insert from Java into 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屋!