【发布时间】:2023-03-19 23:10:01
【问题描述】:
嘿嘿,
我正在做一个项目,我应该将大量 POJO 文件保存到 Oracle 数据库中。 问题是 Hibernate 为每个 POJO 创建一个新的插入 JDBC 请求。 当持久化超过 45.000.000 个对象时,这将需要很长时间。我必须将数据保存到数据库中,这些数据将分布在 15 个不同的表中。所以对于每组数据,我必须做 15 条不同的插入语句。当我必须持久化 3.000.000 个数据集时,需要 45.000.000 个插入语句。
当我与一位同事讨论这个问题时,他建议使用 CSV 文件,而不是使用插入语句插入每个 POJO。现在我想知道,有没有一种简单的方法可以让 Hibernate 为每个表写入一个 CSV 文件?
或者也许有人知道更好的解决方案?
【问题讨论】:
-
最后,CSV 文件也需要加载并插入到数据库中。首先写入文件,然后将文件的内容写入数据库,您会得到什么?
-
这个批量加载实用程序也必须使用插入语句。而且我不明白为什么 Hibernate 在使用 CSV 文件写入虚构数据库时会比写入真实数据库更快。顺便说一句,这 3,000,000 个数据集来自哪里?
-
我认为使用批量加载,可以直接写入数据库的文件系统。我认为,让 Hibernate 写入文件必须比通过网络和使用 SQL 使用 JDBC 请求快得多。
标签: hibernate csv persistence oracle11g