为什么我们需要一个JDBC连接池? [关闭](Why we need a connection

2019-08-31 12:28发布

  • 什么是使用像一个JDBC连接池工具的好处DBCP或C3P0 ?

  • 在与一个用户一个小CRUD应用程序的情况下,我们能不能建立一个连接会话作为一个单身

PS:我建立一个小javafx应用程序与小背式的h2数据库(表5)。

Answer 1:

从乔恩斯基特的答案, 什么是连接和语句池的好处? :

创建网络连接到数据库服务器(相对)昂贵。 同样要求服务器准备的SQL语句是(相对)昂贵。

使用连接/语句池,可以重用现有的连接/预处理语句,避免发起连接的成本,解析SQL等。

而下面,从肯特Boogaart的回答 :

我不熟悉C3P0,但池连接和语句的好处包括:

  1. 性能。 连接到数据库是昂贵的和缓慢的。 池的连接可以保持物理地连接到数据库中,并且需要访问数据库的多个部件之间共享。 这样的连接费用支付一次,并在所有的消费组件摊销。

  2. 诊断。 如果你有一个子系统负责连接到数据库,它变得更容易诊断和分析数据库的连接使用。

  3. 可维护性。 同样,如果你有一个子系统负责分发数据库连接,你的代码会更容易维护比如果每个组件连接到数据库本身。



Answer 2:

创建连接是昂贵的,它没有任何意义创建每笔交易可能只需要几毫秒的新的连接。 管理池中的数据库连接意味着应用程序可以在避免连接建立时间(连接仍然需要建立,但它们在启动时所有的创建)的方式进行数据库事务。 缺点是,如果所有的连接都在使用,且需要另一个连接,请求线程将不得不等待,直到一个连接返回到池中。



文章来源: Why we need a connection pooling for JDBC? [closed]