ResultSet中做if判断时next()两次取不到第一条数据的问题
来源:互联网 发布:数据库的认识 编辑:程序博客网 时间:2024/06/07 01:12
JDBC判断数据库查询结果集是否为空
通常来说都是用rs.next()来判断结果集是否为空,但是由于执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会导致第一条数据无法得到。所以用以下代码段是个比较好的判断方法。
if(!rs.next()) //结果集为空
{
//执行某操作
}
else //不为空
{
do
{
//循环执行某操作,这里用do-while先走执行操作,然后while判断。
}while(rs.next());
}
-------------------------------------错误的做法-------------------------------------
这里当正常判断: if(rs.next()){//rs不为空
while(rs.next()){
//循环执行某操作
}
}else{//rs为空
//执行某操作
}
这个时候因为if里的rs.next()做判断游标往后走了一个,所以当下面while里rs.next做循环判断的时候,就是
从第二条数据开始的了。但是我们要取得第一条数据。就用上面的做法。
通常来说都是用rs.next()来判断结果集是否为空,但是由于执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会导致第一条数据无法得到。所以用以下代码段是个比较好的判断方法。
if(!rs.next()) //结果集为空
{
//执行某操作
}
else //不为空
{
do
{
//循环执行某操作,这里用do-while先走执行操作,然后while判断。
}while(rs.next());
}
-------------------------------------错误的做法-------------------------------------
这里当正常判断: if(rs.next()){//rs不为空
while(rs.next()){
//循环执行某操作
}
}else{//rs为空
//执行某操作
}
这个时候因为if里的rs.next()做判断游标往后走了一个,所以当下面while里rs.next做循环判断的时候,就是
从第二条数据开始的了。但是我们要取得第一条数据。就用上面的做法。
- ResultSet中做if判断时next()两次取不到第一条数据的问题
- 取数据库中分组后每一个人的第一条数据
- ABAP PARAMETERS没有输入时取不到数据的问题
- 关于struts2传递json数据时取不到的问题
- 取排序后的第一条数据
- 取每一列的第一条数据
- SQL SERVER 取出 一张表中的每个分组中 的第一条数据 ,第一条数据是按照某种排序规则进行排序取的第一条
- springmvc中从servletRequest中去post发送过来的数据取不到的问题
- db2取第一条数据
- oracle 取第一条数据
- sql 取第一条数据
- WPF中ListView在不滚动数据的情况下只能取到当前显示的数据,取不到滚动条以下的数据解决方法
- 关于在jsp中使用forEach标签取list中的数据却取不到数据的问题
- 关于js中post方法遇到的同步问题(取不到json里的数据)
- 关于数据库读不到第一条数据
- mysql查询不到第一条数据
- 各种数据库取查询结果的第一条数据
- Oracle 查询出来的数据取第一条
- VI/VIM常用命令
- jsp截取数组最后一个字符
- 计算机视觉中关于相似性度量的方法
- opengl学习笔记(一)---获取opengl版本等信息
- 用jQuery生成可交互的表格——维护表格、设置表格分页
- ResultSet中做if判断时next()两次取不到第一条数据的问题
- C# ArrayList的用法
- 袁锋-Nodejs, 脱离了浏览器的Javascript
- Oracle解除表被占用问题
- 双向循环链表的插入删除
- 更改myeclipse启动默认打开的工作空间
- hdu 2289 Cup
- Linux内核模块自动加载机制
- 从今天开始Csdn多了一个我