我的任务是创建一个独立的 java 应用程序来执行以下操作:
- 解析 .csv 文件。(这将有大约 300 万条记录)
- 对于每条记录,在几个 DB 表中插入约 15 行。
- 输出 .csv 记录是否成功处理。
我目前设计这个的想法是:
- 阅读 .csv 文件(还没有考虑到这一步)
- 为 .csv 中的每条记录创建一个工作/任务对象。将所有这些任务对象放在一个队列/列表中。
- 创建预定义数量的线程(老派,不使用 Executor 框架)
每个线程都有以下逻辑:
- 创建数据库连接。
if(getNextJobFromList() != null)
// Prepare and insert the statements in a batch update.
- 关闭数据库资源。
- 给出输出状态
时间在这里是一个很大的限制。
现在的问题:
我可以使用 Executor 框架来加快速度吗?在我的伪代码中,线程在其生命周期内保持数据库连接。我可以在 Executor 框架中执行此操作吗?
还有其他方法可以优化吗?
提前致谢 :)