1

我有一个在登录页面上连接到 oracle 的 JSP 应用程序。如何保持此连接处于活动状态并在另一个页面上执行查询?

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@" + HOST + ":1521:fcprod", request.getParameter("username"), request.getParameter("password"));
4

3 回答 3

1

我使用执行连接池的c3p0保持连接处于活动状态。它具有在不使用时保持连接活动的命令。我在 grails 应用程序(类似于 jsp)和基于休眠的应用程序中使用它。

上面的评论是正确的,但是您需要将连接信息从页面移到控制器(不是一个好主意)或服务(可能是最好的主意)中。

于 2012-06-21T21:56:30.333 回答
0

这绝对不是要走的路。尝试实施另一种解决方案,因为在我看来,您正在尝试自己动手。

如果您正在使用支持池连接的应用程序服务器,请尝试使用它。如果没有,请尝试在单独的请求中打开和关闭连接。如果您想在打开的会话期间保持与数据库的打开连接,随着会话数量的增加,这将迅速清除您的所有资源。尝试在应用程序的生命周期内保持单个连接打开会更糟糕。

于 2012-06-21T22:29:54.653 回答
0

出现这种情况并不是一个好习惯。但是您可以使用 session.setAttribute("con", con); 将此 con 对象存储到会话范围中。在您需要的任何页面上,使用 Connection con = (Connection)session.getAttribute("con");

于 2012-06-22T09:11:05.320 回答