ResultSet结果集
来源:互联网 发布:淘宝千里眼在线人数 编辑:程序博客网 时间:2024/05/16 04:25
所有的超级接口:AutoCloseable, Wrapper
所有的子接口:CachedRowSet, FilteredRowSet, JdbcRowSet, JoinRowSet, RowSet, SyncResolver, WebRowSet
将数据库中的数据以表格的形式转换到ResultSet中,通常是通过数据库查询语句查询数据库产生的。
一个ResultSet的操作主要是通过指向当前行数据的指针实现的。默认情况下指针是指向第一行数据之前(因此要得到想要的数据,首先得把指针移到对应的行)。next()方法将当前指向的指针移向下一行,并且当ResultSet对象不存在下一行时会返回false,因此可以在循环中迭代ResultSet中的所有数据。
ResultSet对象是不可改变的,并且指针只能“往下移”。因此,在迭代的时候只能一次一次来,并且只能从第一行到最后一行。当然实现ResultSet的往返或者说是更新也是可能的。下面一些代码碎片,是为了说明ResultSet是可以滚动的并且对于更新操作来说是迟钝的,而且ResultSet是可更新的,其中con是一个有效的collection对象,
Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2"); // rs可以滚动,并且不能改变 // 指针可以改变位置
在当前行中可以使用getter()方法(getBoolean(),getLong(),…)来检索列的值。并且值是可以通过列的索引或者列的属性名来检索的。但是总体上使用列的索引来检索更有效。列的索引是从1开始的。为保证最大限度的移植,ResultSet中的每行之中列应该从左到右按顺序读取,并且每行只能读一次。
对于getter()方法,JDBC driver希望将底层数据转换成java类型的数据,这就使通过相应的getter()方法并且最后返回一个合适的java类型的值。JDBC driver说明书中就展示了相关的数据映射,通过ResultSet中getter方法将SQL中的数据,转换为java类型的数据。getter()方法中如果是输入列名来获取值,那么列名是不需要区分大小写的。如果getter()获取值的列名有重复的情况,那么最后返回的值是第一次成功匹配的。一般使用列名是在通过数据库查询语句产生ResultSet时。数据库查询时不是必须使用列名,也可以通过列的索引。而且最好是使用列的索引。如果使用列名,则必须保证程序中的列名必须和相应的列一一对应,这是可以使用数据库中as句子来确保。
JDBC 2.0中加入了一系列updater()方法。有一些说法是:getter()方法中参数也可以应用到updater()方法中参数。
Updater()方法可以以下两种方法实现
1、 更新当前行中列的值。
在可以滚动的ResultSet对象中,指针可以来回移动,移到一个确定的位置,或者说是与当前位置相对的位置。下面的代码碎片的功能是更新ResultSet对象rs的第五行名为NAME的列,然后使用updateRow()方法更新rs导出的数据资源表。
rs.absolute(5); // 将指针移到rs中的第五行rs.updateString("NAME", "AINSWORTH"); // 将改行名为NAME列更新为AINSWORTHrs.updateRow(); // 更新整行的数据资源
2、 将插入到列中值再插入到行。
可更新的ResultSet集对象有一个特殊的行,该行与将要插入点行相关。下面的代码片段将指针移动到将要插入的行,然后创建了一个拥有三列的行,在讲改行插入到rs中,最后视同insertRow()的方法将rs插入数据资源表中。
rs.moveToInsertRow(); // 将指针移动到插入的行rs.updateString(1, "AINSWORTH"); // 将改行的第一列的列名改为AINSWORTHrs.updateInt(2,35); // 将改行的第二列改为35rs.updateBoolean(3, true); // 将改行的第三列改为truers.insertRow();rs.moveToCurrentRow();
当Statement对象关闭,重新执行,或者是用于检索一系列结果集中的下一个结果集时ResultSet对象会自动关闭。ResultSet对象的列的编号,类型以及属性是通过 ResultSetMetaData对象返回的 ResultSet.getMetaData()方法提供的。
- 封装resultset 结果集
- ResultSet 结果集
- 结果集(ResultSet)用法
- ResultSet滚动结果集
- 结果集(ResultSet)用法
- ResultSet 结果集简介
- 结果集(ResultSet)用法
- 遍历ResultSet结果集
- ResultSet结果集
- 结果集(ResultSet)用法
- ResultSet结果集
- 结果集(ResultSet)用法
- ResultSet处理结果集总结
- 数据库结果集ResultSet详解
- 数据库结果集ResultSet详解
- 课时5:ResultSet结果集
- ResultSet 结果集查询数据库
- 可卷动结果集ResultSet分页
- MySQL 数据库同步配置
- Linux_Hi3518 SDK 安装以及编译出错分析
- js货币比较
- 工作汇报
- Perf -- Linux下的系统性能调优工具
- ResultSet结果集
- javascript中的数据类型转换
- elasticsearch配置文件详解
- multipartfile上传文件
- 分布式tensorflow测试 结果及问题
- 深入java static关键字 在继承场景中jvm类加载器对其进行的优化
- 深度学习和自然语言处理中的attention和memory机制
- 表单post提交方式和get的区别
- Angular错误以及注意点