所以这是我代码的一部分:
try {
for (int i = 0; i < n; i++){
ResultSet res;
res = bdd.requete(sql);
doSomethingWithRes()
}
}
catch (Exception e) {
e.printStackTrace();
}
我想关闭此块末尾的结果集(以节省资源(,但是如果我添加 res.cose((,java 会告诉我 res 可能尚未初始化(对于 n=0 也是如此(。有没有办法在不执行查询的情况下初始化结果集?
我也试过
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()
但是编译器不接受它,即使它会起作用。有没有办法强制编译器接受这一点?
您必须增加ResultSet
实例的范围;唯一的问题是您有多个实例,您应该关闭所有实例。我会建议像这样的try-with-resources
try {
for (int i = 0; i < n; i++){
try (ResultSet res = bdd.requete(sql)) {
doSomethingWithRes();
}
}
}
catch (Exception e) {
e.printStackTrace();
}