作者conan99 (Conan)
看板Programming
标题[问题] Java的ResultSet is closed
时间Wed Mar 17 13:17:27 2010
请教一下,我的Java程式需要存取三次SQLite资料库的资料
因此分别在不同地方宣告ResultSet的物件,并执行Query
这三个物件使用同一个Statement
而我在存取完资料後,随即将该Resulteset物件Close掉
想请问一下这样子的写法有错吗?
因为在第一次执行程式可以正常执行,程式会在我还没写完的程式码exception中止
而当我将资料库的档案删掉,并再次执行程式时
程式执行到第一个Query时,会出现ResultSet is closed错误
以下附上我大致上的程式码供参考,谢谢
==================================
try {
Statement stat_BlogPostDB = conn_BlogPostDB....;
String str_SqlQuery = "Select...";
ResultSet rs_blogSN = stat_BlogPostDB.executeQuery(str_SqlQuery);
if(!(rs_blogSN.next())) {
//存入资料到TABLE-Blogs
}
int_BlogSN = rs_blogSN.getInt("blogSN");
rs_blogSN.close();
for (...) {
if(...) {
for (...) {
str_SqlQuery = "Select...";
ResultSet rs_postSN = stat_BlogPostDB.executeQuery(str_SqlQuery);
if(!(rs_postSN.next())) {
//存入资料到TABLE-Posts
}
rs_postSN.close();
}
}
}
if(...) {
str_SqlQuery = "Select...";
ResultSet rs_postURL = stat_BlogPostDB.executeQuery(str_SqlQuery);
while(rs_postURL.next()) {
//从TABLE-Posts读取资料
}
}
rs_postURL.close();
//程式未完成,此行後的程式码将遇到exception中断
}
conn_BlogPostDB.close();
} catch (Exception e) {
System.out.println(e);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.124.144.102
1F:→ willieliao:JDBC对同一个sql出来的result有cache 76.111.66.205 03/17 22:47
2F:→ conan99:可是这三个是不同的Query呐 203.67.213.49 03/19 01:46
3F:→ conan99:已经解决,一部份自己的逻辑出错,一部份140.124.144.102 03/29 20:56
4F:→ conan99:result执行next到最後,似乎会自动close140.124.144.102 03/29 20:57