gpt4 book ai didi

java - JDBC - 连接多个数据库

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:37 27 4
gpt4 key购买 nike

我正在开发一个需要连接 N 个数据库系统的应用程序 [N 的范围在 1 到 350 之间]。

想法是——用户将看到一个数据库列表,并被要求从列表中选择任何或所有数据库。

选择数据库后,我需要连接到每个数据库并执行存储过程。

我打算使用普通的旧 JDBC 并一次为它们中的每一个获取连接 [或通过在多个线程中运行它们] 并执行存储过程并关闭连接。

而这一切都应该发生在一个事务中。执行此操作的最佳方法是什么?

如果不是 JDBC...还有其他有效的方法吗?

更新-

存储过程实际上涉及运行一些sql - 例如更新列,为用户授予权限等。

最佳答案

Executors#newFixedThreadPool() 的帮助下,我会创建一个具有合理最大线程数的线程池,可能在 10 到 20 个线程之间并调用单独的 DB 连接和 SP 执行任务,每个任务作为 Callable使用 ExecutorService#invokeAll() .您想尝试最终产生最佳性能的线程数和配置文件。

每个 Callable 实现都应将连接详细信息和 SP 名称作为构造函数参数,以便您可以为不同的 DB 调用重用相同的实现。


更新:好的,这是一个网络应用程序。你不想浪费线程。如果它应该由单个并发用户使用,那么你真的应该确保线程池是正确的 shutdown在请求结束时或在 session 的最高端。但是如果它应该被多个并发用户使用,那么你想在应用程序范围内共享线程池。同样在这里,您需要确保在关闭 webapp 时正确关闭它。 ServletContextListener 在这里很有用。

关于java - JDBC - 连接多个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427817/

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