gpt4 book ai didi

java - 如何在表中高效插入约500.000条数据行

转载 作者:行者123 更新时间:2023-12-01 08:05:45 25 4
gpt4 key购买 nike

我有大约 500.000 行数据要插入到一个表中。

我目前一次插入一个(我知道这很糟糕),如下所示:

道法:

public static final String SET_DATA = "insert into TABLE (D_ID, N_ID, VALUE, RUN_ID) " + "values (?, ?, ?, ?)";

public void setData(String dId, String nId, BigDecimal value, Run run) throws HibernateException {
if (session == null) {
session = sessionFactory.openSession();
}

SQLQuery select = session.createSQLQuery(SET_DATA);
select.setString(0, dId);
select.setString(1, nId);
select.setBigDecimal(2, value);
select.setLong(3, run.getRunId());

select.executeUpdate();
}

我怎样才能更有效地做到这一点?

最佳答案

为什么你要手写 SQL 查询?如果你这样写sql,你肯定得不到hibernate的成果。

学习 Batch Insert Batch Insert 的示例代码,

    Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}

tx.commit();
session.close();

关于java - 如何在表中高效插入约500.000条数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21777826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com