Java 关闭jdbc中的数据库连接
我需要在以下代码中关闭连接的帮助。我尝试过在不同的位置进行其他关闭,但无法正确关闭。它抛出异常或显示“变量不可访问”错误。此块将在页面加载时执行Java 关闭jdbc中的数据库连接,java,jsp,jdbc,Java,Jsp,Jdbc,我需要在以下代码中关闭连接的帮助。我尝试过在不同的位置进行其他关闭,但无法正确关闭。它抛出异常或显示“变量不可访问”错误。此块将在页面加载时执行 <%! public class Actor { String URL = "jdbc:mysql://mll-pbbvew1:3307/sakila"; String USERNAME = "root"; String PA
<%!
public class Actor {
String URL = "jdbc:mysql://mll-pbbvew1:3307/sakila";
String USERNAME = "root";
String PASSWORD = "password";
Connection connection = null;
PreparedStatement selectActors = null;
ResultSet resultSet = null;
public Actor() {
try {
connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
selectActors = connection.prepareStatement("SELECT * FROM sakila.test");
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet getActors(String userid) {
try {
selectActors.setString(1, userid);
resultSet = selectActors.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return resultSet;
}
}
%>
我在同一页中有另一个带有insert语句的块,该块正在正确关闭。请帮助关闭此select语句的连接
编辑1:
我在以后类似这样的地方调用结果集
<% Actor actor = new Actor();
ResultSet actors = actor.getActors(userid);
%>
我应该在哪里放置连接。close();以便正确关闭连接
编辑2:
我从另一个HTML页面以字符串的形式获取userid作为输入
<%
String userid=request.getParameter("userid");
%>
在这个jsp页面的最顶端打开“校内方式”是非常糟糕的。关闭只是对坏解决方案的表面改变。生产代码中的此类主题是以完全不同的方式解决的(连接池,JNDI)。这在scriptlet中的事实让我感到不安。通常,除了
finally
块解决方案之外,您还可以在finally
块中为实现可关闭接口的任何类释放资源,自从Java7以来,就有了try-with-resources来保证闭包。看见