【发布时间】:2016-12-15 11:56:03
【问题描述】:
在使用 JSP 和 servlet 开发 Web 应用程序时,这是我心中最大的问题,即数据库连接的编码应该放在哪里......
在 servlet 中,如果我们将连接代码放在 service()(或 doXXX())方法中,那么对于每个请求,都会在应用程序和数据库之间建立连接;这会导致时间和资源的消耗,所以这不是一个好的选择......
如果我们将连接代码放在 init() 方法中(通过初始化实例变量),那么只会建立一个连接,并且所有用户的请求都可以使用同一连接与 service() 中的数据库进行通信(或doXXX()) 方法;当我们考虑同时请求时,这可能会导致同步问题,因为所有请求都使用相同的连接...
那么这个问题的优雅解决方案是什么?
【问题讨论】:
-
您可以让您的服务器维护池,然后使用 JNDI 获取连接。以 Tomcat 为例:tomcat.apache.org/tomcat-7.0-doc/…。否则,您可以使用 docs.oracle.com/javaee/6/api/javax/servlet/… 在 ServletContext 中初始化数据库池,并通过 ServletCONtext 在 Servlet 中获取连接
-
JDBC 对多个请求具有相当的弹性...
-
JDBC 不是多线程的。小心。