JavaEE JDBC ResultSet内外移动
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();
}
JavaEE JDBC ResultSet内外移动的更多相关文章
- java jdbc ResultSet结果通过java反射赋值给java对象
在不整合框架的情况下,使用jdbc从数据库读取数据时都得一个个的get和set,不仅累代码还显得不简洁,所以利用java的反射机制写了一个工具类,这样用jdbc从数据库拿数据的时候就不用那么麻烦了. ...
- 由DB2分页想到的,关于JDBC ResultSet 处理大数据量
最近在处理DB2 ,查询中,发现如下问题.如果一个查询 count(*),有几十万行,分页如何实现 select row_number() over (order by fid desc ) as r ...
- JavaEE JDBC 可滚动和可更新的结果集ResultSet
可滚动和可更新的结果集ResultSet @author ixenos 需求背景 1.对于一个只需要分析数据的程序来说,普通的ResultSet已够用 2.但如果ResultSet用于显示一张表或查询 ...
- 将JDBC ResultSet结果集变成List
private List<Map<String, Object>> list = new ArrayList<Map<String,Object>>() ...
- javaEE jdbc编程步骤
1.载入数据库驱动(jar文件) //须要下载一个数据库的jar包,并导入对应的JDBC项目中,创建路径! Class.forName("com.mysql.jdbc.Driver" ...
- 将JDBC ResultSet结果集转成List
private List<Map<String, Object>> list = new ArrayList<Map<String,Object>>() ...
- 由于使用JDBC ResultSet的滚动功能而导致的内存溢出
前天一去公司,老大说,服务器全挂了! 最后排查了半天,结论是内存溢出! 在WAS的DUMP日志中,看得我头晕眼花,终于找到了罪魁祸首,原来是有同事写代码的时候使用了可滚动的结果集导致内存溢出. 什么是 ...
- [javaEE] JDBC快速入门
JDBC:Java Data Base Connectivity java数据库连接 1.组成JDBC的两个包:主要是接口 java.sql javax.sql 2.相应JDBC的数据库实现 在tom ...
- JDBC ResultSet分析
JDBC1.0 .JDBC2.0 .JDBC3.0 中分别用以下方法创建Statement . JDBC1.0 : createStatement() JDBC2.0 : createStatemen ...
随机推荐
- 467 Unique Substrings in Wraparound String 封装字符串中的独特子字符串
详见:https://leetcode.com/problems/unique-substrings-in-wraparound-string/description/ C++: class Solu ...
- 求指教--hadoop2.4.1集群搭建及管理遇到的问题
集群规划: 主机名 IP 安装的软件 运行的进程 hadooop 192.168.1.69 jdk.hadoop NameNode.DFSZKFailoverController(zkfc) hado ...
- ajax通过新闻id获取列表
<div class="index_main"> <div class="page_l"> <i ...
- Java多线程——进程和线程
Java多线程——进程和线程 摘要:本文主要解释在Java这门编程语言中,什么是进程,什么是线程,以及二者之间的关系. 部分内容来自以下博客: https://www.cnblogs.com/dolp ...
- UnixTime的时间戳的转换
public static string XConvertDateTime(double unixTime) { System.DateTime time = System.DateTime.MinV ...
- MSSQL 重新生成索引,重新组织索引
> 5% 且 < = 30% ALTER INDEX REORGANIZE > 30% ALTER INDEX REBUILD WITH (ONLINE = ON)* * 重新生成索 ...
- Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图的数据操作
导航 目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:视图实体类映射 下一篇:Farseer.net轻量级ORM开源 ...
- vue获取dom元素高度的方法
获取高度: <div ref="自定义名称" > </div>要在钩子mounted里面dom结构生成后去获取dom的高度,宽度,修改样式等操作!!! mo ...
- FlowNet: Learning Optical Flow with Convolutional Networks
作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/7122701.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...
- A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection
作者:嫩芽33出处:http://www.cnblogs.com/nenya33/p/6817781.html 版权:本文版权归作者和博客园共有 转载:欢迎转载,但未经作者同意,必须保留此段声明:必须 ...