是否可以在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/