我有一个非常依赖数据库的小型电子商务应用程序。我已经看到它的一些性能问题,主要是在建立与数据库的连接时。我不是 DBA,也不是任何其他深入的数据库知识 - 但我知道缓存连接而不是一直建立新连接是有意义的。
下面是我获取连接的方法:
public Connection getConnection() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://182.31.456.32:3306/"+database+"",""+username+"",""+password+"");
// stm=con.createStatement();
return con;
}
我的问题是 - 如何轻松缓存当前连接并重用它而不是使用 JDBC/Java 创建新连接?
谢谢。
最佳答案
在您有一个相当大的电子商务应用程序的情况下,您通常不会按照您在代码中显示的方式对数据库连接进行编码。
我们使用连接池。
我想,您的电子商务应用程序将部署在某个应用程序服务器中,使用该服务器的连接池设施来管理您的数据库连接。
如果它是没有服务器的应用程序,您可以使用 C3P0 等连接池 API 之一来显式编码池功能。
我猜你所谓的连接缓存基本上是要求实现一个Singleton。互联网上会有很多关于如何实现单例的例子,但你不应该在代码中关闭连接。
有一个叫做connection-timeout 时间的东西,如果使用单连接缓存解决方案,你需要正确设置它。
希望对您有所帮助!!
关于java - 缓存 JDBC 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39550155/