所以这是我的代码的一部分:
try {
for (int i = 0; i < n; i++){
ResultSet res;
res = bdd.requete(sql);
doSomethingWithRes()
}
}
catch (Exception e) {
e.printStackTrace();
}
我想在这个块的末尾关闭resultSet(以节省资源),但是如果我添加res.cose(),java会告诉我res可能没有被初始化(对于n =这是真的) 0)。有没有办法在不进行查询的情况下初始化resultSet?
我也试过
try {
for (int i = 0; i < n; i++){
ResultSet res;
res = bdd.requete(sql);
doSomethingWithRes()
}
}
catch (Exception e) {
e.printStackTrace();
}
if (n>=1)
res.close()
但是编译器不接受它,即使它可以工作。有没有办法强制编译器接受这个?
答案 0 :(得分:2)
您必须增加ResultSet
实例的范围;唯一的问题是你有多个,你应该关闭所有这些。我建议try-with-resources
喜欢
try {
for (int i = 0; i < n; i++){
try (ResultSet res = bdd.requete(sql)) {
doSomethingWithRes();
}
}
}
catch (Exception e) {
e.printStackTrace();
}