当前位置: 首页 > 面试题库 >

为什么我们需要JDBC连接池?

端木淇
2023-03-14
问题内容
  • 使用JDBC连接池工具(如DBCP或c3p0)有什么好处?

  • 如果只有 一个* 用户的 小型CRUD 应用程序,我们是否可以将 一个 连接会话创建为一个 单例 *

PS :我正在构建一个javafx带有小型h2数据库(5个表)的小型后端应用程序。


问题答案:

从Jon Skeet的答案到连接和语句池的好处是什么?:

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

使用连接/语句池,您可以重用现有的连接/准备好的语句,从而避免了启动连接,解析SQL等的开销。

以下是肯特·布加阿特(KentBoogaart)的回答:

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

1.
性能。连接到数据库既昂贵又缓慢。池化连接可以保持与数据库的物理连接,并在需要数据库访问的各个组件之间共享。这样一来,连接成本便一次性支付,并在所有消耗组件中摊销。

  1. 诊断。如果您有一个子系统负责连接到数据库,则诊断和分析数据库连接使用情况将变得更加容易。

  2. 可维护性。同样,如果您有一个子系统负责分发数据库连接,则与每个组件都连接到数据库本身相比,代码将更易于维护。



 类似资料:
  • 我正在尝试按照本教程实现nodejs mysql数据库。我知道 查询()是Pool.GetConnection()+Connection.Query()+Connection.Release()的快捷方式。 在本文中,数据库配置为: 这是可以用作: 但是,我真的不明白 如果使用pool会自动释放连接,为什么我们需要这样做呢?

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 问题内容: 我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似or 的函数;数组的数组在哪里? 如果有人可以直观地解释正在发生的事情,那将非常有帮助。 问题答案: 当您有一个Observable的结果是更多Observable时,可以使用flatMap。 如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观

  • 这里我的问题是在关闭连接对象时,在以下情况下会出现什么问题。 > 假设没有发生异常,在try块中它会自动关闭连接对象。 如果发生某些异常,它将转到catch块,在那里它将自动关闭连接对象。 关闭finally块中的连接对象。 注意:请不要说最后块中关闭连接对象很好。我知道那个。如果我在try块中保持关闭连接,接球块是否有任何问题请解释。