口福
2019-12-11 22:25
采纳率: 33.3%
浏览 383
已采纳

conn.close();关闭资源后,执行只输出数据库的第一行?

while(rs.next()) ,后面不关闭资源本来是输出全部数据库内容的,

conn.close();关闭资源后,执行结果却只输出数据库的第一行,怎么解决关闭资源后只输出一行的问题?谢谢
while(rs.next()) {//把光标移动到下一行,并且判断下一行是否存在
int id = rs.getInt(1);//通过编号获取该列的值
String name = rs.getString("name");//通过列名称来获取该列的值
int age = rs.getInt("age");
System.out.println(id+","+name+","+age);
/*四.关闭资源,释放资源
*倒关
* 必须关闭资源
* 先得到的对象后关闭,后得到的对象先关闭
*/
rs.close();
st.close();
con.close();//必须关闭资源,不关就死!
}
}
}图片说明图片说明

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 「已注销」 2019-12-12 10:34
    已采纳

    你这个while循环是用来取出数据并进行处理的,然鹅你把关闭资源的操作也写在while循环里面,这就导致了,当你第一次操作完,取出第一行数据之后,就执行了关闭资源的操作,那你后面还咋取。。。正常流程应该是在while之前获取资源,在while中操作资源,在while之后关闭资源!

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2019-12-12 09:33

    花括号位置错误,应该把close放在while循环外面,也就是下面的花括号移动到println后面

    评论
    解决 无用
    打赏 举报
  • 软件工程达人 2019-12-13 13:02

    加一行conn.release()

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题