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 ...
随机推荐
- Mondriaan's Dream POJ - 2411
Mondriaan's Dream POJ - 2411 可以用状压dp,但是要打一下表.暴力枚举行.这一行的状态.上一行的状态,判断如果上一行的状态能转移到这一行的状态就转移. 状态定义:ans[i ...
- java数据结构和算法04(链表)
前面我们看了数组,栈和队列,大概就会这些数据结构有了一些基本的认识,首先回顾一下之前的东西: 在数组中,其实是分为有序数组和无序数组,我简单实现了无序数组,为什么呢?因为有序数组的实现就是将无序数组进 ...
- sql发送邮件- html 格式
ALTER PROCEDURE dbo.sx_pro_AutoEmailContent AS Begin declare @Rqty int declare @n int declare @m_rec ...
- Asp.Net 设计模式 之 “特殊”的单例模式
特殊的单例模式 要点在这里,提前预览: public SingleDemo() { name = "yy"; age = 20; //特殊的单例,this指代得失当前的Single ...
- Android(java)学习笔记188:学生信息管理系统案例(SQLite + ListView)
1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用Vie ...
- Swift 命名空间形式扩展的实现
Swift 的 extension 机制很强大,不仅可以针对自定义的类型,还能作用于系统库的类型,甚至基础类型比如 Int.当在对系统库做 extension 的时候,就会涉及到一个命名冲突的问题.O ...
- redis 其他特性
1.消息订阅与发布 subscribe my1 订阅频道 psubscribe my1* 批量订阅频道,订阅以my1开头的所有频道 publish my1 hello 在指定频道中发布消息,返回值为接 ...
- CS2QS
inline QString MotorCS2QS(CString cs) { return QString::fromWCharArray((LPCTSTR)cs, cs.GetLength()); ...
- 服务器中打开IIS管理器
1.选远程连接服务器,然后开始>控制面板>打开或关闭Windows功能>服务器管理器>web服务器>internet信息服务的展开下一项即可,如图:
- windows/linux 更新python pip
linux环境下 pip install -U pip windows环境下 python -m pip install -U pip python -m pip install --upgrade ...