我正在开发一个关于eclipse的动态Web项目。
以下是使用DataSource连接MySQL的示例。 这是正确的方法吗?我的意思是在Servlet中获取连接是正常的吗?
此外,我发现这种获取/关闭连接的方式很繁琐,因为每当我想要/关闭连接时,我需要编写完全相同的代码部分。我认为应该有更好的方法。有人可以给我一些建议吗?
谢谢!
@WebServlet(name="HelloUser", urlPatterns={"/hellouser"})
public class HelloUserServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
DataSource ds = MyDataSourceFactory.getMySQLDataSource();
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
con = ds.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(...);
...
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(con != null) con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
答案 0 :(得分:3)
从Java 7开始,您可以使用try-with-resource
(更新JDBC api以实现Autocloseable)。
try-with-resources语句是一个声明一个的try语句 或更多资源。资源是必须在之后关闭的对象 该程序已完成
E.g。
try (Connection con = ds.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(...)) {...}