jag*_*mot 10 java database jdbc
我正在开发一个应用程序,我需要连接N个数据库系统[N范围在1到350之间].
这个想法是 - 将向用户呈现数据库列表,并将要求用户从列表中选择任何或所有数据库.
选择数据库后,我需要连接到每个数据库并执行存储过程.
我打算使用普通的旧JDBC并一次为每个JDBC获取连接[或者通过在多个线程中运行它们]并执行存储过程并关闭连接.
所有这一切都应该在交易中发生.做这个的最好方式是什么?
如果不是JDBC ...任何其他有效的方式?
更新 -
存储过程实际上涉及运行一些sql - 例如更新列,为用户授予权限等.
我将创建一个具有合理最大线程数的线程池,可能在十到二十个线程之间,Executors#newFixedThreadPool()并调用单独的数据库连接和 SP 执行任务,每个任务都作为Callableusing ExecutorService#invokeAll()。您希望使用线程数和配置文件来最终获得最佳性能。
每个Callable实现都应将连接详细信息和 SP 名称作为构造函数参数,以便您可以为不同的数据库调用重用相同的实现。
更新:好的,这是一个网络应用程序。您不想浪费线程。如果它应该由单个并发用户使用,那么您应该真正确保线程池在请求结束或会话最结束时正确关闭。但是,如果它应该由多个并发用户使用,那么您希望在应用程序范围内共享线程池。同样在这里,您需要确保当 webapp 关闭时它也正确关闭。在这里很有ServletContextListener用。
| 归档时间: |
|
| 查看次数: |
13452 次 |
| 最近记录: |