为了账号安全,请及时绑定邮箱和手机立即绑定

dao中方法get() ,获得一个对象时为何还要while(rs.next)?

public goddess get(Integer id) throws Exception{
  Connection conn=DBUtil.getConnection();
  String sql=""+
   " select * from goddess "+
   " where id =? ";
  PreparedStatement ptmt=conn.prepareStatement(sql);
  ptmt.setInt(1, id); 
  ResultSet rs=ptmt.executeQuery();//executeQuery()用来执行查询
      goddess g;
   g=new goddess();
   while(rs.next()){
    g.setUser_name(rs.getString("user_name"));
    g.setAge(rs.getInt("age"));
    g.setEmail(rs.getString("email"));
   }
   return g ;
 }

既然数据库查询返回已经是一个条目了,为什么还要循环赋值?

难道rs.next() 不是读取下一个条目?

正在回答

3 回答

每次返回的都是一个结果集,哪怕结果集是只有一个元素

0 回复 有任何疑惑可以回复我~

我也觉得没必要,因为传入的是ID,ID 唯一。但我觉得如果传入的参数是生日或姓名等可能重复的条件,该语句就变得有意义了,所以说应该是编写习惯,这样的程序更具有普遍性。

0 回复 有任何疑惑可以回复我~

判断返回集是否有数据,有则为true

然后由于get方法是通过id获取数据,而id设为主键,所以id唯一,实际上如果读取到数据,rs.nest()为true,此时返回集也只有一个数据,下次rs.nest()的值就为false,然后该段代码退出死循环

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

dao中方法get() ,获得一个对象时为何还要while(rs.next)?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信