Java如何在JDBC中自动关闭资源?
使用JDBC进行编程时,我们需要手动完成的一件事是确保关闭所有使用的资源。所有资源包括ResultSet,Statement并且Connection必须关闭。这通常会在我们的程序中产生很多样板代码。
从Java7的一部分JDBC4.1开始,我们可以使用该try-with-resources语句自动管理我们使用的资源。该try语句关闭该块正常或突然完成执行时使用的资源。
这是一个向我们展示如何使用该try-with-resources语句的示例。
package org.nhooo.example.jdbc;
import java.sql.*;
public class TryWithResourceJdbc {
private static final String URL = "jdbc:mysql://localhost/nhooo";
private static final String USERNAME = "root";
private static final String PASSWORD = "";
public static void main(String[] args) {
try (Connection conn =
DriverManager.getConnection(URL, USERNAME, PASSWORD);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM products")) {
while (rs.next()) {
String code = rs.getString("code");
String name = rs.getString("name");
System.out.println("Code: " + code + "; Name: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}Maven依赖
<!-- https://search.maven.org/remotecontent?filepath=mysql/mysql-connector-java/8.0.17/mysql-connector-java-8.0.17.jar -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>