date: 2019-06-30 16:13
status: draft
title: Result的类型分析和总结

result的不同的类型

  1. 基本的resultset
  2. 可滚动的resultset
  3. 可更新的resultset
  4. 可保持的resultset

resultset 不同的之处的体现

resultset 的产生是statement的查询方法获得的,resultset的不同也是由于statement的不同产生 的。

简介statement 的构造方法

基本的构造方法

Statement st = conn.CreateStatement

带参数的构造方法

Statement st = conn. createStatement (int resultSetType, int resultSetConcurrency)

其中两个参数的意义是:
resultSetType 是设置 ResultSet 对象的类型可滚动,或者是不可滚动。取值如下:

  • ResultSet.TYPE_FORWARD_ONLY 只能向前滚动
  • ResultSet.TYPE_SCROLL_INSENSITIVE 和 Result.TYPE_SCROLL_SENSITIVE 这两个 方法都能够实现任意的前后滚动,使用各种移动的 ResultSet 指针的方法。二者的区别在于前者对于修改不敏感,而后者对于修改敏感。

resultSetConcurency 是设置 ResultSet 对象能够修改的,取值如下:

  • ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。
  • ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。
    全部参数的构造方法
Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)

前两个参数和两个参数的createStatement方法中的参数是完全相同的,这里只介绍第三个参数:
resultSetHoldability表示在结果集提交后结果集是否打开,取值有两个:

  • ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交时,不关闭数据库.
  • ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交时ResultSet关闭.

最基本的resultset

之所以说是最基本的ResultSet是因为,这个ResultSet他起到的作用就是完成了查询结果的存储功能,而且只能读去一次,不能够来回的滚动读取。这种结果集的创建方式如下:

Statement st = conn.CreateStatement
ResultSet rs = Statement.excuteQuery(sqlStr);

由于这种结果集不支持,滚动的读去功能所以,如果获得这样一个结果集,只能使用它里面的next()方法,逐个的读去数据。

可滚动的resultset

这个类型支持前后滚动取得纪录next()、previous(),回到第一行first(),同时还支持要去的ResultSet中的第几行 absolute(int n),以及移动到相对当前行的第几行relative(int n),要实现这样的ResultSet在创建Statement时用如下的方法。

Statement st = conn.createStatement(Result.TYPE_SCROLL_INSENITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = st.excuteQuery(sqlStr) ;

可更新的resultset

3、 可更新的ResultSet
这样的ResultSet对象可以完成对数据库中表的修改,但是我知道ResultSet只是相当于数据库中表的视图,所以并不时所有的ResultSet只要设置了可更新就能够完成更新的,能够完成更新的ResultSet的SQL语句必须要具备如下的属性:
a 、只引用了单个表。
b 、不含有join或者group by子句。
c 、那些列中要包含主关键字。
具有上述条件的,可更新的ResultSet可以完成对数据的修改,可更新的结果集的创建方法是:


Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)

可保持的resultset

正常情况下如果使用Statement执行完一个查询,又去执行另一个查询时这时候第一个查询的结果集就会被关闭,也就是说,所有的Statement的查询对应的结果集是一个,如果调用Connection的commit()方法也会关闭结果集。可保持性就是指当ResultSet的结果被提交时,是被关闭还是不被关闭。JDBC2.0和1.0提供的都是提交后ResultSet就会被关闭。不过在JDBC3.0中,我们可以设置ResultSet是否关闭。要完成这样的ResultSet的对象的创建,要使用的Statement的创建要具有三个参数。如下:

Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)

最后:当使用ResultSet的时候,当查询出来的数据集记录很多,有一千万条的时候,那rs所指的对象是否会占用很多内存,如果记录过多,那程序会不会把系统的内存用光呢

不会的,ResultSet表面看起来是一个记录集,其实这个对象中只是记录了结果集的相关信息,具体的记录并没有存放在对象中,具体的记录内容知道你通过next方法提取的时候,再通过相关的getXXXXX方法提取字段内容的时候才能从数据库中得到,这些并不会占用内存,具体消耗内存是由于你将记录集中的数据提取出来加入到你自己的集合中的时候才会发生,如果你没有使用集合记录所有的记录就不会发生消耗内存厉害的情况。

Result的类型分析和总结相关推荐

  1. 04-struts2框架中获取servlet api及Result结果类型

    在struts2框架中获取servlet api 对于struts2框架,不建议直接使用servlet api; 在struts2中获取servlet api有三种方式: 1.通过ActionCont ...

  2. mysql查询时间类型c语言处理_资讯类app用户热度及资讯类型分析-Mysql进行数据预处理...

    本文是"资讯类app用户热度及资讯类型分析"一文中,Mysql进行数据预处理的部分.因为篇幅可能比较长,而且摘出来不会过于影响原文分析思路,所以这里单独进行介绍.(本文前四部分与正 ...

  3. 【蓝桥杯Java_C组·从零开始卷】第一节、环境与变量类型运算符与类型分析

    B站高清回放地址: [https://www.bilibili.com/video/BV1Bm4y1Q7Wt?spm_id_from=333.999.0.0] 目录 一.Java环境搭建与使用(Ecl ...

  4. Python小白的数学建模课-A1.国赛赛题类型分析

    分析赛题类型,才能有的放矢. 评论区留下邮箱地址,送你国奖论文分析 『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人. 1. 数模竞赛国赛 A题类型分析 年份 题目 要 ...

  5. mybatis异常:Could not find result map ......... 问题分析及解决

    mybatis异常:Could not find result map ......... 问题分析及解决 参考文章: (1)mybatis异常:Could not find result map . ...

  6. 电力系统故障点分析,短路类型分析,中性点小电流接地 不接地故障分析,故障点定位

    电力系统故障点分析,短路类型分析,中性点小电流接地 不接地故障分析,故障点定位,可模拟三相变压器三相短路.单相短路.两相短路和两相短路接地的情况,仿真得到短路电流波形. ID:522006215716 ...

  7. VMware workstation虚拟硬盘、类型分析

    VMware workstation虚拟硬盘.类型分析 在 VMware workstation虚拟机中会有四中硬盘类型,在创建时我们应该为虚拟机选择哪种的硬盘格式为最佳呢? 请根据下面的分析进行选择 ...

  8. 金武士ups电源故障情况类型分析及维修

    金武士ups电源故障情况类型分析及维修 一.金武士UPS电源无法启动 因为金勇士ups的电源是DC启动的,所以在电池没有连接.电池电量低或者电池有问题的情况下,UPS是无法启动的.下面有几种类似的情况 ...

  9. python彩票分析_033期钟玄福彩3D预测奖号:组选类型分析

    福彩3D第2021032期试机号为484,奖号为072,奖号类型为组六,奇偶比为1:2,大小比为1:2. 类型分析:福彩3D在上一个30期周期内(第2020291期-第2021007期),豹子号码没有 ...

  10. 【愚公系列】2023年06月 网络安全(交通银行杯)-文件类型分析和社工

    文章目录 前言 一.文件类型分析 1.文件类型分析1 2.文件类型分析2 3.文件类型分析3 4.文件类型分析4 5.文件类型分析5 6.文件类型分析6 二.社工 1.李四 2.社工帝 3.寓意 4. ...

最新文章

  1. 优盘中发现计算机病毒怎么办,【网警课堂】教你解决U盘使用中出现的各种问题!...
  2. m3u8 video ios h5_【H5】iOS系统下的video视频播放完后重新刷新视频
  3. 工程制图 (零件图)
  4. C语言中的“三字母词”坑了工程师
  5. 《Cracking the Coding Interview》——第11章:排序和搜索——题目7
  6. 匹配嵌套的构造(较复杂)
  7. MySQL子查询作为列_mysql 列子查询
  8. 容器编排技术 -- Kubernetes kubectl create service 命令详解
  9. 剑指offer(7)斐波那契数列
  10. android搭建客户端,用Android搭建客户端 手机和服务器交互开发实例
  11. radiobuttonlist 后面追加操作按钮_【进口知识】通关无纸化签约及代理报关委托收发操作指南...
  12. 解压并安装protobuf库_通过protobuf自带gzip压缩对报文进行二次压缩
  13. Joint European Conference on Machine Learning and Knowledge Discovery in Databases(ECML-PKDD)会议怎么样?
  14. ADO.NET的DataAdapter对象的方法
  15. php分钟转时间戳,php函数转时间戳
  16. 怎么用Python进行Web开发?
  17. Access计算日期字段中数据与当前日期的差值并将其显示在指定字段中
  18. 微信小程序开发工具能正常请求后台数据,手机预览请求失败
  19. Linux服务器带宽占用高导致无法登录的处理经验分享
  20. Linux添加环境变量,以配置MySQL环境怕变量为例

热门文章

  1. 2017年中国网络安全报告
  2. CSS-06天、定位方式、定位(position)的拓展、淘宝轮播图布局、网页布局总结、元素的显示与隐藏、土豆网鼠标经过显示遮罩
  3. mac pycharm如何打开setting
  4. CA搭建实验和安全基础
  5. 'break' not in the 'loop' or 'switch' context 报错
  6. TMUX Cheat Table:和那些妖艳贱货不一样的 TMUX 教程
  7. Consumer is not subscribed to any topics or assigned any partitions
  8. CME ERROR错误代码列表
  9. msf生成windows后门程序
  10. vue图片裁切cropperjs的使用