管理结果集

  JDBC使用ResultSet来封装查询到的结果集,然后移动记录指针来取出结果集的内容,除此之外,JDBC还允许通过ResultSet来更新记录,并提供了ResultSetMetaData来获取ResultSet对象的相关信息。

可滚动的结果集.

ResultSet接口中的方法:

  boolean next():将光标向下移动一行,

  boolean absolute(int row):将光标移动到指定的行。

  void afterLast():移动到结果集的末尾,既最后一行的末尾。

  void beforeFirst(): 将光标移动到结果集的开头,既第一行的前面。

  boolean previous():将光标移动到上一行

  boolean last():将光标移动到最后一行

可滚动可更新的结果集:

  ResultSet定位指针的方法有很多,但是只使用了next方法来移动指针,实际上也可以使用其他方法来移动指针,使用absolute(),previous(),afterLast()等方法自由移动指针的结果集被称为可滚动的结果集。

  在JDK1.4之前,默认打开的ResultSet是不可以滚动的,必须在创建Statement或者PrepareStatement时传入额外的参数,从Java5.0以后,默认打开的ResultSet就是可滚动的结果集,无需传入额外ide参数。

  以默认方法打开的结果集是不可更新的,如果希望创建可更新的结果集,则必须在创建Statement或者PrepareStatement时传入额外的参数,Connection在创建Statement或者Prepared Statement时还可以传入如下的两个参数。

  ResultSetType:控制ResultSet的类型,该参数的取值可以取如下三个值(指定结果集是否可滚动,是否敏感):

    ResultSet.TYPE_FORWARD_ONLY:该常量控制指针只能向前移动,只是JDK1.4以前的默认值。

    ResultSet.TYPE_SCROLL_INSENSITIVE:该常量控制指针可自由移动,但是地底层的数据改变是不会影响ResultSet的内容(既数据库的变化时不会影响结果集的);

    ResultSet.TYPE_SCROLL_SENSITIVE:该常量控制指针可以自由移动,但是底层的数据改变是会影响结果集的内容。

  resultSetConcBLEurrency:控制ResultSet的并发类型,该参数有两个(是否可更新):

    ResultSet.CONCUR_READ_ONLY:该常量指示结果集是只读的并发模式(默认);

    ResultSet.CONCUR_UPDATA:该常量指示结果集是可更新的并发模式

使用ResultSetMateDate分析结果集

  当执行SQL查询后可通过移动记录指针来遍历ResultSet的每条记录,但是程序可能不清楚该结果集中包含哪些数据列,以及每个数据列的数据类型,那么可通过ResultSetMateDate来获取关于ResultSet的描述信息。

  MetaData的意思是元数据,既描述其他数据类型的数据,因此ResultSetMateDate封装了描叙ResultSet对象的数据;

  ResultSet里包含了一个getMetaData()的方法,该方法返回ResultSet对应的ResultMataData对象,一但获取了ResultSet的ResultSetMetaData对象,就可以通过ResultSetMetaData来返回ResultSet的描述信息。常用的方法有三个:

    int getColumnCount():返回该ResultSet的列数量。

    String getColumnName(int column):返回指定索引的列名;

    int getColumnType(int column):返回指定索引的列类型;

  虽然ResultSetMetaDate可以准确的分析出ResultSet里包含了多少列,以及每列的数据类型和每列的名称,但是使用该对象是需要一定的系统开销的,没有必要的话就不要使用此对象了。

  

javaweb学习——JDBC(五)的更多相关文章

  1. javaweb学习总结(五)——Servlet开发(一)

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  2. (转载)JavaWeb学习总结(五十)——文件上传和下载

    源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...

  3. JavaWeb学习总结(五十)——文件上传和下载

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...

  4. javaweb学习总结(五)——Servlet开发(一)(转)

    转载自 http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun ...

  5. JavaWeb学习笔记五 会话技术Cookie&Session

    什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话 ...

  6. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

  7. (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...

  8. (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4216311.html 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封 ...

  9. (转载)JavaWeb学习总结(五十一)——邮件的发送与接收原理

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4209586.html 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电 ...

随机推荐

  1. 时间戳和LocalDateTime和Date互转和格式化

    一 前言 续上篇java8在日常开发中使用LocalDate和LocalTime[https://blog.csdn.net/youku1327/article/details/102771936]中 ...

  2. 五十一、SAP中使程序结构化,模块化

    一.我们创建3个引用单元,这3个单元里面分别存放定义相关,执行相关和子程序相关的内容 二.将程序中的各部分都拆分到INCLUDE文件中,DEF文件内容如下 三.INC文件内容 四.MAIN文件中写程序 ...

  3. 031-PHP获取图像信息

    <?php list($width, $height, $type, $attr) = getimagesize("plane.jpg"); echo "宽度为:& ...

  4. 快速搭建单机版Spring Cloud EurekaServer

    原文链接:http://www.yiidian.com/springcloud/build-eureka-single.html 本文介绍搭建单机版的Eureka Server服务 1 创建项目,导入 ...

  5. React全局浮窗、对话框

    下面代码是组件源码: import React, {Component} from 'react' import {createPortal} from 'react-dom' import styl ...

  6. android:padding和android:margin的区别 android:gravity和 android:layout_gravity 区别

    Android的Margin和Padding跟Html的是一样的.如下图所示:橙色边框(一个RelativeLayout或者LinearLayout)为例,最外层灰色为屏幕边框,黄色部分为Paddin ...

  7. ansible简单部署前端

    pipeline{ agent any parameters { choice(name: 'server_name', choices: ['xx','xx'], description: 'ser ...

  8. BZOJ:1927: [Sdoi2010]星际竞速

    题解:最小费用流+二分图模型: 左边表示出这个点,右边表示入这个点: #include<iostream> #include<cstdio> #include<cstri ...

  9. 77.Q表达式详解

    Q表达式可以包裹查询条件,可以在多个条件之间进行操作:与或非等.Q表达式一般会放在filter()中进行使用,F表达式一般是放在update()中进行使用. 定义模型的models.py文件中,示例代 ...

  10. java课程之团队开发冲刺阶段2.6

    总结昨天进度: 1.总体的思路已经完成,代码也差不多了,只剩下对闹钟activity的设置 遇到的困难: 1.在设置震动的时候,对方法有点不太理解,所以使用的时候产生了错误,没有达到预期的效果 今天的 ...