在Java servlet中管理数据库连接的最佳方式是什么?

目前,我只需在init()函数中打开一个连接,然后在destroy()中关闭它.

然而,我担心"永久地"保持数据库连接可能是一件坏事.

这是处理这件事的正确方式吗?如果没有,还有更好的 Select 吗?

编辑:更详细地说:我try 过 for each 请求简单地打开/关闭一个新连接,但是通过测试,我发现由于创建了太多连接而出现了性能问题.

在多个请求之间共享一个连接有什么价值吗?对此应用程序的请求几乎都是"只读"的,并且来得相当快(尽管请求的数据相当小).

推荐答案

实际上,我不同意使用Commons DBCP.您应该真正遵从容器来管理连接池.

因为您使用的是Java Servlet,这意味着在Servlet容器中运行,而我熟悉的所有主要Servlet容器都提供了连接池管理(Java EE规范甚至可能需要它).如果您的容器碰巧使用了DBCP(就像Tomcat一样),那就太好了,否则,只需使用容器提供的任何内容即可.

Database相关问答推荐

如何在Ballina中的事务失败时回滚缓存插入操作

如何正确创建mongo模型和客户端?

如何使用 SQL Server 中的round方法将浮点数转换为 int?

任何必要的可空外键示例?

我应该使用哪种数据库模型在运行时动态修改实体/属性?

使用python为组中的每个元素添加一个序列号

使用 cloud-spanner 进行本地开发

查询最后一天、上周、上个月SQLite

如何识别 DB2 端口号

执行次数最多的存储过程?

区分大小写的数据库有什么好处吗?

使 H2 将引用的名称和未引用的名称视为相同

FOR UPDATE和JOIN的 SQL 语义

是否有任何数据库支持自动索引创建?

在 SQL Server 2005 中将数据库从一个驱动器移动到另一个驱动器的正确方法是什么?

是否有标准的Electron 商务数据库架构来将折扣/税收/礼券应用于产品?

我可以用 JPA 命名我的约束吗?

有人可以详细解释 SOLR requestHandlers 和 responseWriters 吗?

PostgreSQL 的示例数据库

如何在 SQLServer 数据库的两个实例之间复制数据记录