通过 JDBC/ODBC 访问数据库时,您应该为每个请求创建和关闭连接吗?

Posted

技术标签:

【中文标题】通过 JDBC/ODBC 访问数据库时,您应该为每个请求创建和关闭连接吗?【英文标题】:When accessing a database over JDBC/ODBC should you create and close the connection for each request? 【发布时间】:2009-05-28 13:07:16 【问题描述】:

如果您有一个类为来自其他类的数据库数据请求提供服务,那么您应该在什么时候保持数据库连接,什么时候应该关闭它并在下一个请求时重新打开它?

如果它是响应外部应用程序连接的服务怎么办? (Web 服务、Ajax、rpc)

保持与始终打开的数据库的单例连接并在失败时重新打开它是个好主意吗?还是应该为每个请求打开一个新的数据库连接?

如果维护一个始终与数据库保持打开连接的单例数据库对象是一个坏主意,那么在任何情况下它是一个好主意吗?我经常看到它被引用为单例模式的理由?

我不是在谈论每个数据库查询的新连接,那太愚蠢了。

【问题讨论】:

【参考方案1】:

你可能想看看connection pooling。

在这种情况下,N 个连接被打开并可供客户端使用。当您“关闭”连接时,连接本身并没有关闭,而是返回到池中以供其他客户端使用。

Apache DBCP 是一个有用的库来管理这个。

【讨论】:

以上是关于通过 JDBC/ODBC 访问数据库时,您应该为每个请求创建和关闭连接吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse JDBC ODBC 中连接数据库时出错,

使用JDBC

什么是数据源?JDBC,ODBC两个应该怎么理解?

JDBC ODBC 和 4D 数据库:读取一行时,不发送列的第一个空格字符

jdbc odbc JDBC-ODBC

JDBC数据库操作