JDBC入门(2)--- ResultSet之滚动结果集
2024-08-22 10:19:59
一、ResultSet之滚动结果集
ResultSet表示结果集,它是一个二维的表格。ResultSet内部维护一个行光标(游标),ResultSet提供了一系列的方法来移动游标:
- void beforeFirst():把光标放到第一行的前面,这也是光标默认的位置;
- void afterLast():把光标放到最后一行的后面;
- boolean first(): 把光标放到第一行的位置上,返回值表示调控光标是否成功;
- boolean last():把光标放到最后一行的位置上;
- boolean isBeforeFirst():当前光标位置是否在第一行前面
- boolean isAfterLast():当前光标位置是否在最后一行后面
- boolean isFirst():当前光标位置是否在第一行上
- boolean isLast():当前光标位置是否在最后一行上
- boolean previous(): 把光标向上挪一行
- boolean next(): 把光标向下挪一行
- boolean relative(int row):相对位移,当row为正数时,表示向下移动row行,为负数时表示向上移动row行。
- boolean absolute(int row):绝对位移,把光标移动到指定的行上;
- int getRow():返回当前光标所有行。
上面方法分为两类,一类用来判断游标位置的,另一类是用来移动游标的。如果结果集是不可滚动的,那么只能使用next()方法来移动游标,而beforeFirst()、afterLast()、first()、last()、previous()、relative()方法都不能使用。
获取结果集元数据:
- 得到元数据:rs.getMetaData(),返回值为ResultSetMetaData;
- 获取结果集列数:int getColumnCount();
- 获取指定列的列名:String getColumnName(int collindex);
结果集特性:
- 是否可滚动
- 是否敏感
- 是否可更新
Statement createStatement();//默认不滚动、不敏感、不可更新。
结果集是否支持滚动,要从Conntection类的createStatement()方法说起。也就是说创建的Statement决定了使用Statement创建的ResultSet是否支持滚动。
Statement createStatement(int resultSetType,int resultSetConcurrency)
- 第一个参数的可选值:
- ResultSet.TYPE_FORWARD_ONLY: 不滚动结果集;(默认值)
- ResultSet.TYPE_SCROLL INSENSITIVE: 滚动结果集,但结果集数据不会再跟随数据库而变化;
- ResultSet.TYPE_SCROLL_SENSITIVE: 滚动结果集,但结果集数据不会再跟随数据库而变化;(无数据驱动支持)
- 第二个参数的可选值:
- CONCUR_READ_ONLY:结果集是只读的,不能通过修改结果集而反向影响数据库;
- CONCUR_UPDATABLE:结果集是可更新的,对结果集的更新可以反向影响数据库。
二、ResultSet之获取列数据
可以通过next()方法使ResultSet的游标向下移动,当游标移动到你需要的行时,就需要获取该行的数据,ResultSet提供了一系列获取列数据的方法:
- String getString (int columnIndex):获取指定列的String类型数据
- int getInt (int columnIndex):获取指定列的int类型数据
- double getDouble (int columnIndex):获取指定列的double类型数据
- boolean getBoolean (int columnIndex):获取指定列的boolean类型数据
- Object getObject (int columnIndex):获取指定列的Object类型的数据
- String getString (int columnName):获取名为columnName的列的String类型数据
- int getInt (int columnName):获取名为columnName的列的int类型数据
- double getDouble (int columnName):获取名为columnName的列的double类型数据
- boolean getBoolean (int columnName):获取名为columnName的列的boolean类型数据
- Object getObject (int columnName):获取名为columnName的列的Object类型的数据
最新文章
- Navisworks 2014 Api 简单的使用
- Windows Phone 三、样式和资源
- Android 自定义表格显示数据
- node系列:琐碎备忘
- 通过IP连接网上打印机(转载)
- Android:开发环境
- UVALive 4222 Dance 模拟题
- Rstudio编辑界面美化设置
- A题笔记(4)
- 如何识别SQL Server中的IO瓶颈
- Script:SQL调优健康检查脚本
- fiddler 路由设置
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
- WEB跨域资源共享:Cross-origin Resource Sharing(CORS)
- Redis 学习笔记3:Jedis 连接虚拟机下的Redis 服务
- 启动Cognos时报0106错误
- LOJ 2551 「JSOI2018」列队——主席树+二分
- angularJs 2-quickstart学习记录
- App性能测试之启动时间(安卓)手动+脚本
- Python之时间(time)模块
热门文章
- scrapy之 downloader middleware
- RDD转换成为DataFrame
- IDEA External libraries 不显示Maven中引入的repository
- Service Discovery protocol(SDP)
- [转] HBase异常:hbase-default.xml file seems to be for an old version of HBase
- php 使用 rabbitmq
- Android AES加密工具类实现(基础回顾)
- 一次邮件发送协议SMTP问题排查
- java.lang.NoClassDefFoundError: org/springframework/ui/jasperreports/JasperReportsUtils原因
- ThreadPoolExecutor 杂记