while(rs.next())遍历记录集的时候,循环内部有新的查询,这个查询不可以使用循环外部建立好的conn,statment吗?为什么

xinlimei 2003-09-12 03:47:07
while(rs.next())
{
String dygz = "select * from YGZ where dm='"+rs.getString("dygz")+"'";
ResultSet dygzrs = stmt.executeQuery(dygz);
dygzrs.close();
}
编译通过,运行出错!java.lang.NullPointException

如果我在循环内部重新建立连接就好用了

while(rs.next())
{

String dygz = "select * from YGZ where dm='"+rs.getString("dygz")+"'";

Class.forName(...);
Connection ..;
Statment....;
ResultSet dygzrs = stmt.executeQuery(dygz);
dygzrs.close();
}

谢谢大家
...全文
100 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinlimei 2003-09-12
  • 打赏
  • 举报
回复
我的那个 内部定义的rs 不算新的?
每次循环一次建立一次
谢谢了!!!
joygxd 2003-09-12
  • 打赏
  • 举报
回复
while(rs.next())
{
String dygz = "select * from YGZ where dm='"+rs.getString("dygz")+"'";
ResultSet dygzrs = stmt.executeQuery(dygz);
dygzrs.close();
}

循环里每次定义肯定不行了
String dygz = "select * from YGZ where dm='"+rs.getString("dygz")+"'"; ResultSet dygzrs =nullwhile(rs.next())
{
dygzrs= stmt.executeQuery(dygz);
}
dygzrs.close();

while(rs.next())遍历记录集的时候,循环内部有新的查询,这个查询不可以使用循环外部建立好的conn,statment吗?

是完全可以的
只不过ResultSet 要重新定义一个新的


xinlimei 2003-09-12
  • 打赏
  • 举报
回复
那大家的意思是
一个rs 对应 一个stmt 》?!
回答是还是不是
liusoft 2003-09-12
  • 打赏
  • 举报
回复
有些数据库的驱动程序是允许的,但是非常不建议这么做,除非你经过非常的测试证明没问题,可是不可能啊,因为你的问题已经出现:)
xinlimei 2003-09-12
  • 打赏
  • 举报
回复
一个stmt 只能执行一次查询吗 ? 只能对应一个rs ?
troopers 2003-09-12
  • 打赏
  • 举报
回复
建立两个要考虑重定义的问题。
kaibinsj 2003-09-12
  • 打赏
  • 举报
回复
你可以在循环外部建两个stmt,在循环内建立dygzrs,循环完一次关闭就行了。
xinlimei 2003-09-12
  • 打赏
  • 举报
回复
请用中文啊 大哥
我重新使用stmt 对象 它需要 。。数据?
那个单词不认识
给个详细的结实啊
dmhorse 2003-09-12
  • 打赏
  • 举报
回复
because u reuse the stmt object,it would corrupt the data

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧