使用 Java servlet 时何时打开以及何时关闭 mysql 连接?
Posted
技术标签:
【中文标题】使用 Java servlet 时何时打开以及何时关闭 mysql 连接?【英文标题】:When to open and when to close the mysql connection while using Java servlets? 【发布时间】:2011-12-01 11:09:48 【问题描述】:在init
方法中打开连接,在destroy
方法中关闭是否可以?还有什么是打开与 mysql 数据库的连接的最佳方式。目前我正在使用这个:
Class.forName("com.mysql.jdbc.Driver");
Connection connect = DriverManager.getConnection("jdbc:mysql://" + ipaddress + "?user=" + user + "&password=" + pass);
但我在某处读到这效率低下,我应该使用连接池。该怎么做?
【问题讨论】:
【参考方案1】:我强烈建议使用连接池,无论是明确的(例如c3p0)还是由您的 servlet 容器提供的。
在需要时打开您的数据库连接,然后尽快关闭它 - 连接池将负责真正的网络连接。
除非您这样做,否则您最终会为整个应用程序建立一个连接 - 这意味着您一次只能处理一个查询,并且您的所有代码都需要围绕数据库查询进行同步。您肯定希望多个完全独立的查询能够同时执行吗?您无法通过单个连接来执行此操作。
至于在配置了适当的连接池后打开连接的最佳方式——您很可能最终还是使用DriverManager.getConnection()
,但直接指定连接池而不是mysql。
【讨论】:
以上是关于使用 Java servlet 时何时打开以及何时关闭 mysql 连接?的主要内容,如果未能解决你的问题,请参考以下文章