Java 为桌面应用程序执行连接池有意义吗?

Java 为桌面应用程序执行连接池有意义吗?,java,database-connection,desktop-application,Java,Database Connection,Desktop Application,我正在开发一个与数据库通信的java桌面应用程序。有五个用户和一个数据库。每个用户在其机器上都有自己的软件副本,数据库位于同一局域网中的计算机上 我已经读到,连接池只针对web应用程序。我担心的是,为每个查询打开和关闭一个新的连接是否会减慢软件的速度?在这种情况下,尤其是在桌面应用程序中,使用连接池有意义吗?如果打开/关闭连接实际上是一个瓶颈,并且连接池不可行,那么正确的策略是什么?连接池可以在许多方面提供帮助。当然,在webapp中,它可以通过保持连接打开来减少重新连接每个请求的时间/开销,从

我正在开发一个与数据库通信的java桌面应用程序。有五个用户和一个数据库。每个用户在其机器上都有自己的软件副本,数据库位于同一局域网中的计算机上


我已经读到,连接池只针对web应用程序。我担心的是,为每个查询打开和关闭一个新的连接是否会减慢软件的速度?在这种情况下,尤其是在桌面应用程序中,使用连接池有意义吗?如果打开/关闭连接实际上是一个瓶颈,并且连接池不可行,那么正确的策略是什么?

连接池可以在许多方面提供帮助。当然,在webapp中,它可以通过保持连接打开来减少重新连接每个请求的时间/开销,从而帮助减少负载。你可以在桌面应用程序中得到一些,但我怀疑你会注意到其中的区别。然而,其中一个最大的好处是自动重新连接处理。根据应用程序的设置方式,如果您的连接曾经免费中断,您可以获得透明(或至少半透明)的重新连接支持。

连接池可以在许多方面提供帮助。当然,在webapp中,它可以通过保持连接打开来减少重新连接每个请求的时间/开销,从而帮助减少负载。你可以在桌面应用程序中得到一些,但我怀疑你会注意到其中的区别。然而,其中一个最大的好处是自动重新连接处理。根据应用程序的设置方式,如果您的连接免费中断,您可以获得透明(或至少半透明)的重新连接支持。

连接池是“服务器端的事情”。只有在数据库所在的位置(例如,在数据库和客户机之间的应用服务器上)共享连接时,这才有意义

问:你有应用服务器或任何中间件吗?或者您的客户端都直接连接到数据库

如果是后者,什么样的数据库?每个供应商都有自己的扩展,可能会有所帮助。

连接池是“服务器端的事情”。只有在数据库所在的位置(例如,在数据库和客户机之间的应用服务器上)共享连接时,这才有意义

问:你有应用服务器或任何中间件吗?或者您的客户端都直接连接到数据库


如果是后者,什么样的数据库?每个供应商都有自己的扩展,这可能会有所帮助。

答案是,这取决于具体情况

这将取决于应用程序的复杂性以及您希望同时对数据库进行查询的数量

如果你所做的只是不时地打一个电话,那么可能不值得为拥有一个池而努力,而是保持一个可用的连接

另一方面,如果您正在进行许多查询,有时是同时进行的,那么拥有一个简单的事件池将是有益的

问题越复杂,您从连接池中获得的好处就越多


当然,这是一种平衡行为。如果你有帮助的话,你不希望有太多的联系长期无所事事。

答案是,这要看情况而定

这将取决于应用程序的复杂性以及您希望同时对数据库进行查询的数量

如果你所做的只是不时地打一个电话,那么可能不值得为拥有一个池而努力,而是保持一个可用的连接

另一方面,如果您正在进行许多查询,有时是同时进行的,那么拥有一个简单的事件池将是有益的

问题越复杂,您从连接池中获得的好处就越多


当然,这是一种平衡行为。如果您有帮助的话,您不希望有太多的连接长时间无所事事。

“我已经读到连接池仅适用于web应用程序”。。。不知道你在哪里读到的,但别在那里读了。除此之外,没有人能权威地为你回答这个问题;这取决于很多因素和应用程序的使用模式。我不同意以“主要基于观点”来结束这个问题。连接池总是比长期或频繁打开/关闭的连接更可取。后者在DB服务器上创建负载,无论应用程序是桌面应用程序还是服务器应用程序。前者(长寿命)伴随着连接丢失和恢复的风险,这需要大量的应用程序级逻辑来应对。通过在返回连接之前检查“新鲜度”,连接池大大简化了应用程序逻辑,并明显减少了故障。“我已经读到连接池仅用于web应用程序”。。。不知道你在哪里读到的,但别在那里读了。除此之外,没有人能权威地为你回答这个问题;这取决于很多因素和应用程序的使用模式。我不同意以“主要基于观点”来结束这个问题。连接池总是比长期或频繁打开/关闭的连接更可取。后者在DB服务器上创建负载,无论应用程序是桌面应用程序还是服务器应用程序。前者(长寿命)伴随着连接丢失和恢复的风险,这需要大量的应用程序级逻辑来应对。通过在返回连接之前检查“新鲜度”,连接池大大简化了应用程序逻辑并明显减少了故障。然后,很明显,所有的桌面数据库工具都做错了…然后,很明显,所有的桌面数据库工具都做错了…很好的代表