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() 不是读取下一个条目?
每次返回的都是一个结果集,哪怕结果集是只有一个元素
我也觉得没必要,因为传入的是ID,ID 唯一。但我觉得如果传入的参数是生日或姓名等可能重复的条件,该语句就变得有意义了,所以说应该是编写习惯,这样的程序更具有普遍性。
判断返回集是否有数据,有则为true
然后由于get方法是通过id获取数据,而id设为主键,所以id唯一,实际上如果读取到数据,rs.nest()为true,此时返回集也只有一个数据,下次rs.nest()的值就为false,然后该段代码退出死循环