我正在尝试从Java内部的SQL语句中打印一些结果,并且我收到一条错误,说这些变量需要初始化但是我不确定除了将它们设置为null之外如何执行此操作这不是我想在这里做的,我的错误是在尝试关闭st
,rs
和con
时,我被提示初始化变量,但这只是设置它们至null
,这是我目前的代码:
public static void copyFolder(File src, File dest)
throws IOException {
Connection con;
Statement st;
ResultSet rs;
try {
con = DriverManager.getConnection("removed as it houses sensitive data");
st = con.createStatement();
String s = "SELECT Code FROM dbo.\"FK Facades$Dimension Value\" WHERE [Dimension Code] = 'PROJECT'";
rs = st.executeQuery(s);
while (rs.next()) {
rs.getString(1);
System.out.print(rs);
}
} catch (Exception e) {
System.out.println("No connectarino");
} finally {
try {
st.close();
rs.close();
con.close();
} catch (Exception e) {
System.out.println("No");
}
}
}
答案 0 :(得分:2)
除了已经说过的内容之外,你应该像这样开始使用try-with-resources:
try (Connection con = DriverManager.getConnection("removed as it houses sensitive data");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("...")) {
// your code here
}
这会自动为您关闭实例,甚至可以获得正确的案例(即close()
中的例外)。
答案 1 :(得分:1)
您需要初始化extern "C" {
#include <gnuplot_i.h>
}
int main(int argc, char** argv) {
gnuplot_ctrl * h;
h = gnuplot_init();
return 0;
}
,con
和st
,因为例如,如果try块中的第一行失败,您将没有这些变量的值,因此它无法执行最后阻止这就是你编译失败的原因。
所以它应该是:
rs
NB:关闭语句
之前的结果集