java - 从多个线程读取相同的 ResultSet

标签 java multithreading jdbc resultset

在数据库中,我有一个定义表,在启动时从应用程序中读取一次。该定义表很少更改,因此读取一次并在每次更改时重新启动应用程序是有意义的。

但是,在读取表(放入结果集中)后,它将由在各自线程中运行的多个处理程序读取。

您建议如何实现这一目标?

我的想法是填充一个 CachedRowSet,然后在每次新请求到来时为每个处理程序创建该集合的副本(通过 createCopy() 方法)。

你认为这明智吗?这能提供良好的性能吗?

谢谢。

最佳答案

使用单例模式可能会更好。这将允许您创建一个所有线程都可以访问以获取它们所需的对象的单个类。这还可以让您不必在进行更改时关闭应用程序。实现此目的的一种方法是创建一个类,在该类中可以获取和设置所需信息的方法。另一个类将给出该对象的引用。

给出引用的类可以有一个私有(private)构造函数和一个 getInstance 方法,该方法将返回对其自身的引用以确保只有一个存在。这也将为您提供一些其他选项,帮助您了解当事情发生变化时您可以做什么。

关于java - 从多个线程读取相同的 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2530531/

相关文章:

java - JDBC 尝试使用 null 参数从 MySQL 数据库检索 salt

java - 我可以从 JDBC 连接运行 "source"命令(SQL 脚本)吗?

java - 使用 JDBC 从 Oracle 获取唯一索引的所有外键

java - Android 中的矩阵串联是否向后?

java - Android 谷歌地图 V2 用户定位

java - Logstash找不到jdk

c# - 多线程时 i 的错误值?

java - 服务器无法处理多个连接

java - Apache Camel ftp 组件 - 成功传输的通知

Java:启动线程(替代在构造函数中启动)