JavaEE JDBC ResultSet内外移动
2024-08-24 15:21:14
ResultSet内外移动
@author ixenos
内外移动指位置光标的移动
内移动就是一个ResultSet得到后的那个光标!
外移动就是多个ResultSet的迭代
内移动
一般的数据库都不允许单个查询提交多个SELECT语句,
1.execute执行SQL语句后,返回一个结果集ResultSet,
2.其中有个光标next在第一个元组之前(想象一下),调用hasNext就会判断光标下一个元组存不存在
3.rs.next定位行(元组triple),rs.getXXX定位列(字段field)
外移动
在执行存储过程中、或某些允许单个查询提交多个SELECT语句的操作中,可能会返回多个结果集
1.使用execute方法执行SQL语句,将获取第一个结果集或更新计数,
2.重复调用getMoreResults方法,将移动ResultSets的光标到下一个结果集,
3.当不存在更多的结果集或更新计数时,完成操作
4.stat.getResultSet定位当前结果集,stat.getUpdateStatement更新计数,stat.getMoreResults定位下一个结果集
boolean isResult = stat.execute(sql); Boolean done = false; while(!done){ if(isResult){ ResultSet result = stat.getResultSet(); 。。。 }else{ int updateCount = stat.getUpdateCount(); //isResult是false,但count!=-1,说明存在SQL操作但不返回结果集 if(updateCount >= 0){ 。。。 }else{ //count是-1时,说明getMoreResults没有结果集了,也没有别的SQL操作,此时退出 Done = true; } } if(!done) isResult = stat.getMoreResults(); }
最新文章
- WebGIS中等值线前端生成绘制简析
- Tapestry
- 关于 xcode5 真机调试 的 no matching provisioning profiles found
- NYOJ 1058 部分和问题
- HTML5&;CSS3经典动态表单-2
- hdu Bone Collector
- 四则运算app工程的进展
- Linux内核探讨-- 第七章
- Glimpse
- c#类初始化器
- SQL事务与并发
- 14-UIKit(拖拽手势、布局)
- jemeter逻辑控制器
- Hibernate---基础配置
- Mysql条件的类型决定了是否能走索引
- 让Xcode日志输出中文
- 201521123063 java第一周总结
- Unsupported major.minor version 51.0 错误解决方案
- 直接插入排序(js版)
- Caffe:如何将图片数据转换成lmdb文件