java web 我想知道while(rs.next())是什么意思
publicUserload(intid){Connectioncon=null;PreparedStatementps=null;ResultSetrs=null;Us...
public User load(int id) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
User u = null;
try {
con = DBUtil.getConnection();
String sql = "select * from t_user where id=?";
ps=con.prepareStatement(sql);
ps.setInt(1, id);
rs=ps.executeQuery();
while(rs.next()) {
u=new User();
u.setId(rs.getInt("id"));
u.setNickname(rs.getString("nickname"));
u.setUsername(rs.getString("username"));
u.setPassword(rs.getString("password"));
u.setStatus(rs.getInt("status"));
u.setType(rs.getInt("type"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs);
DBUtil.close(ps);
DBUtil.close(con);
}
return u;
} 展开
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
User u = null;
try {
con = DBUtil.getConnection();
String sql = "select * from t_user where id=?";
ps=con.prepareStatement(sql);
ps.setInt(1, id);
rs=ps.executeQuery();
while(rs.next()) {
u=new User();
u.setId(rs.getInt("id"));
u.setNickname(rs.getString("nickname"));
u.setUsername(rs.getString("username"));
u.setPassword(rs.getString("password"));
u.setStatus(rs.getInt("status"));
u.setType(rs.getInt("type"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs);
DBUtil.close(ps);
DBUtil.close(con);
}
return u;
} 展开
4个回答
展开全部
首先你要知道ResultSet是一个结果集,即ResultSet存有一个表(通过执行查询数据库的语句生成),该表的当前行可以访问(当前行的初始位置是null),可以使用rs.next()方法移动到下一行(即表的第一行),如果新的当前行有效(即有值)就返回true,然后就可以使用get方法获取该行各列的值了,如果不存在下一行,则返回 false;因为这个方法会抛出一个SQLException,故要捕捉(try-catch)。。。。。打完 收工!
展开全部
boolean next()
throws SQLException
将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next
方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的
ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是
TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回
false 还是抛出 SQLException 将由供应商指定。
如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet
对象的警告链。
返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
抛出:
SQLException -
如果发生数据库访问错误或在关闭的结果集上调用此方法
throws SQLException
将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next
方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。
当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的
ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是
TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回
false 还是抛出 SQLException 将由供应商指定。
如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet
对象的警告链。
返回:
如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false
抛出:
SQLException -
如果发生数据库访问错误或在关闭的结果集上调用此方法
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当查询数据库的结果集中有数据(返回真)就开始循环
也就是当从数据库中找到了东西rs.next()就返回真,否则返回假
也就是当从数据库中找到了东西rs.next()就返回真,否则返回假
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
resultSet是你查询的结果集合,rs.next相当于一个指针返回true或false,起始位置为0,每调用一次向下移动一下,如果返回true说明还有记录
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |