- 结构:
try(声明和创建资源) {
使用资源来处理文件
}
/**
* 测试使用try-with-catch自动关闭连接
*/
public class TestJDBC {
public static void main(String[] args) {
//注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try (
//建立连接对象jdbc:mysql:///db3
Connection conn = DriverManager.getConnection("jdbc:mysql:///db3", "root", "root");
//建立执行sql语句对象
Statement statement = conn.createStatement();
) {
//定义sql语句
String sql = "select * from account where id = 1";
ResultSet rs = statement.executeQuery(sql);
//处理结果
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString("name");
double balance = rs.getDouble(3);
System.out.println("id:" + id + "\nname:" + name + "\nbalance:" + balance);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
- 解释:关键词try后面声明和创建了Connection和Statement资源,注意,资源必须是AutoCloseable的子类型,资源的声明和创建必须在同一个语句中,块结束后,资源的close()方法自动调用以关闭资源。在try-with-resource语句中可以省略catch子句。