0

我创建了一个名为 MySQL 的类。

这个类只包含 1 个方法,它将我连接到我的数据库。

public static void Connect() {
    try {
        Class.forName("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException ex) {
        System.out.println(ex.getMessage());
    }
    try {

        connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/"+database,username,password);

    } catch (SQLException ex) {
        System.out.println(ex.getMessage());
    }
}

所以现在,当我需要在 JSP 页面内部进行连接时,我会写这个。

<% MySQL.Connect();
   Statement stmt = MySQL.getConnection().createStatement();
   ResultSet rset = stmt.executeQuery("....");
   //Some codes here
   //Then I close both rset and stmt
   rset.close();
   stmt.close();
%>

我也应该关闭连接吗?请注意,加载页面时会执行更多查询,我应该为所有查询处理 1 个连接还是为每个查询处理 1 个连接然后关闭它?

4

2 回答 2

1

理想情况下,您只需在呈现页面期间使用一个连接,然后在页面末尾关闭它。

这样做的效果是确保一旦您开始呈现页面,您就可以完成,因为您不会由于连接池耗尽而在中途丢失连接(并且您应该使用连接池而不是直接建立连接,如果您重视您的页面性能。

于 2012-10-25T16:24:19.933 回答
0

1、直接在jsp中获取连接不是个好主意。

2,无需为要在同一页面中执行的每个查询创建单独的连接。这也基于您对该连接执行的操作。

3,无论你在哪里打开连接,连接都必须关闭。否则会出现泄漏问题。

4,在关闭连接之前确保它们不为空。所以空值检查很重要,否则你可能会得到空指针异常。

5,在finally块中关闭连接,这样当对象被垃圾收集时,就不会再有基于连接的操作了。在 finally 块中完成关闭连接工作。*

于 2012-10-25T16:56:26.643 回答