我在Java项目中将大量数据从.csv文件导入数据库。我有兴趣了解实现这一目标的最佳方法。
请你帮我解决一下频谱的另一端吗?
答案 0 :(得分:0)
最佳选择是在使用大量数据进行批量操作时使用数据库的本机支持。如果Oracle那么SQL*Loader。如果Postgres然后他们有COPY命令。
如果您正在寻找Java特定选项,那么下面是我的首选订单
JDBC:使用batch operations支持,但这有一个限制,即批处理操作中的任何失败都会使整个流程短路
Hibernate:ORM不适用于此。但是,您可以同时使用StatelessSession和batch configuration来获得最佳效果。
答案 1 :(得分:0)
在我看来,应使用数据库功能解决此类情况(批量导入):
对于Oracle SQLLoader(由@Pangea建议)
如果是MS SQL Server BCP(批量复制)
如果您正在寻找基于@ Java的方法,那么我回应@Pangea 除此之外 您可以将批量插入分解为子批次并同时运行它们以获得更好的性能。
例如:如果您要插入10k记录,那么您可以构建每批200条记录并同时插入5批记录。
在这种情况下,您需要代码来跟踪每个子批次。
希望这有帮助!