【java】能不能在返回结果的里面再用resultset?
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;impor...
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class db {
public static void main(String[] args) {
String dbUrl ="jdbc:odbc:test";
String dbUser = "";
String dbPwd = "";
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
Statement st=conn.createStatement();
String sql="select * from t1 ";
ResultSet rs=st.executeQuery(sql);
String name=null;
String xy;
String number;
while(rs.next()){
name=rs.getString(1);
xy=rs.getString(2);
number=rs.getString(3);
String sqll="update t2 set number='" + number + "' where name='" + name + "' and xy='" + xy + "'";
st.executeUpdate(sqll);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在while语句里面也用了sql语句进行操作,这样是不是错的啊?我看反悔了错误提示
java.sql.SQLException: ResultSet is closed
at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(Unknown Source)
at db.main(db.java:23)
提示错误是ResultSet is closed数据库连接绝对没有问题
加了这两句之后就出错了
String sqll="update t2 set number='" + number + "' where name='" + name + "' and xy='" + xy + "'";
st.executeUpdate(sqll); 展开
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class db {
public static void main(String[] args) {
String dbUrl ="jdbc:odbc:test";
String dbUser = "";
String dbPwd = "";
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
Statement st=conn.createStatement();
String sql="select * from t1 ";
ResultSet rs=st.executeQuery(sql);
String name=null;
String xy;
String number;
while(rs.next()){
name=rs.getString(1);
xy=rs.getString(2);
number=rs.getString(3);
String sqll="update t2 set number='" + number + "' where name='" + name + "' and xy='" + xy + "'";
st.executeUpdate(sqll);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
我在while语句里面也用了sql语句进行操作,这样是不是错的啊?我看反悔了错误提示
java.sql.SQLException: ResultSet is closed
at sun.jdbc.odbc.JdbcOdbcResultSet.checkOpen(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcResultSet.next(Unknown Source)
at db.main(db.java:23)
提示错误是ResultSet is closed数据库连接绝对没有问题
加了这两句之后就出错了
String sqll="update t2 set number='" + number + "' where name='" + name + "' and xy='" + xy + "'";
st.executeUpdate(sqll); 展开
4个回答
展开全部
我去尝试一下,还没有在while里在写 SQL语句,以前要么一个方法写一个操作,偶尔也写两个操作,就是返回插入的identity编号。
等待ing、、、
哈哈,你搞错了,可分析出来错误了,你在while循环了不断更新又不断查询,就相当于一个死循环了,然后ResultSet就关闭了。不要那么弄。可以把他添加到数据里面在在while循环外更新,这样就可以了、
等待ing、、、
哈哈,你搞错了,可分析出来错误了,你在while循环了不断更新又不断查询,就相当于一个死循环了,然后ResultSet就关闭了。不要那么弄。可以把他添加到数据里面在在while循环外更新,这样就可以了、
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
操作数据库一张表的时候又试图操作其它的表,估计不行吧!JDBC是单线程的。呵呵,个人意见
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
提示什么错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询