在 Java 中执行一条 SQL 语句涉及许多步骤:
- 创建连接
- 创建语句
- 执行语句,创建结果集
- 关闭结果集
- 关闭声明
- 关闭连接
在每个步骤中都可能抛出 SQLException。如果我们能够正确处理所有异常并释放所有资源,代码将如下所示,其中 4 级 TRY 堆叠在彼此的顶部。
try {
Connection connection = dataSource.getConnection();
try {
PreparedStatement statement = connection.prepareStatement("SELECT 1 FROM myTable");
try {
ResultSet result = statement.executeQuery();
try {
if (result.next()) {
Integer theOne = result.getInt(1);
}
}
finally {
result.close();
}
}
finally {
statement.close();
}
}
finally {
connection.close();
}
}
catch (SQLException e) {
// Handle exception
}
您能否提出一种更好(更短)的方式来执行语句,同时释放所有消耗的资源?