javaweb学习——JDBC(五)
管理结果集
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(五)的更多相关文章
- javaweb学习总结(五)——Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- (转载)JavaWeb学习总结(五十)——文件上传和下载
源地址:http://www.cnblogs.com/xdp-gacl/p/4200090.html 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传 ...
- JavaWeb学习总结(五十)——文件上传和下载
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用 ...
- javaweb学习总结(五)——Servlet开发(一)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3760336.html 一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun ...
- JavaWeb学习笔记五 会话技术Cookie&Session
什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话 ...
- JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...
- (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...
- (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4216311.html 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封 ...
- (转载)JavaWeb学习总结(五十一)——邮件的发送与接收原理
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4209586.html 一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电 ...
随机推荐
- 3-Java逻辑控制语句
目录 Java选择结构 Java循环结构 return.break.continue Math.random()的使用和条件运算符 1.Java选择结构 1.1.if(布尔表达式)单选结构 - 当布尔 ...
- C#重写窗体的方法
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- python -- unittest测试用例函数无法传参的处理方法(ddt)
1.超继承 重写测试用例类的init方法,如下所示. import requests import unittest class XiaoheiCases(unittest.TestCase): de ...
- 字符串匹配之BF算法
1)算法原理 BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符:若不相等 ...
- unique constraint(PD.HSI_RIGHT) violated
插入时报错,原因:唯一约束重复了.... 查看表中有唯一约束的列是不是已经有值了 果然,唯一约束有两条重复的记录. ------------------------------------------ ...
- Python 官方推荐的一款打包工具
译者:Jiong 链接: https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 在thoughtbo ...
- 关于ThinkCMF后台验证码不显示
最近小凯在群里看到好多同学们遇到一个头疼的问题,程序在本地调试好了之后上传服务器,后台的验证码就会不显示,今天三群的 [江苏 冰点零度 php] 同学遇到了这个问题. 开始小凯以为是GB库出来问题 ...
- html—表单控件
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- java多线程之volatile关键字
public class ThreadVolatile extends Thread { public boolean flag=true; @Override public void run() { ...
- C#调用C++系列一:简单传值
因为去实习的时候有一个小任务是C#想调用C++ opencv实现的一些处理,那我主要的想法就是将C++实现的OpenCV处理封装成dll库供C#调用,这里面还会涉及到一些托管和非托管的概念,我暂时的做 ...