java - 使用 Java servlet 时何时打开以及何时关闭 mysql 连接?

标签 java servlets jdbc

是否可以在init方法中打开一个连接,在destroy方法中关闭它?还有什么是打开与 mysql 数据库的连接的最佳方法。目前我正在使用这个:

Class.forName("com.mysql.jdbc.Driver");

Connection connect = DriverManager.getConnection("jdbc:mysql://" + ipaddress + "?user=" + user + "&password=" + pass);

但我在某处读到这是低效的,我应该使用连接池。如何做到这一点?

最佳答案

我强烈建议使用连接池,可以是明确的(例如 c3p0 ),也可以是您的 servlet 容器提供的连接池。

在需要时打开数据库连接,然后尽快关闭它 - 连接池将处理真正的网络连接。

除非您这样做,否则您最终会为整个应用程序建立一个连接 - 这意味着您一次只能处理一个查询,并且您的所有代码都需要围绕数据库查询进行同步。您肯定希望多个完全独立的查询能够同时执行吗?您无法通过单个连接执行此操作。

至于打开连接的最佳方式,配置了适当的连接池 - 您可能最终仍会使用 DriverManager.getConnection(),但指定连接池而不是直接指定 mysql。

关于java - 使用 Java servlet 时何时打开以及何时关闭 mysql 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7661447/

相关文章:

java - 如何使用 Hibernate 按投影分组

java - 如何在 JavaConfig 中设置 jsp-config

java - [警告][插件]插件 jdbc- River,无法调用自定义 onModule 方法

java - 将 OSMDroid 的 map 图 block 提供程序更改回默认值

java - 如何创建一个可以采用属性值模式的 LdapUserDetailsMapper?

java - 在jsp中将编辑按钮保存在相同的表单上

java - tomcat web应用程序的并行编程

jdbc - "NzSQLException: The update count exceeded Integer.MAX_VALUE"错误仅在 JDBC 连接上

java - 为什么我的嵌入式 h2 程序写入 .mv.db 文件

java - 我如何计算用户输入的字符串中有多少个数字和字母?