ResultSet的几个静态变量

2024-04-27 11:08
文章标签 几个 变量 静态 resultset

本文主要是介绍ResultSet的几个静态变量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

createStatement(int resultSetType, int resultSetConcurrency)参数意义
仔细地阅读了j2sdk1.4.2文档以及http://java.sun.com/j2se/1.4.2/docs/api/上的文档,对java.sql.Connection.createStatement(int,int)有了一些体会。
根据j2sdk文档中的定义,resultSetType可以是ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE或者ResultSet.TYPE_SCROLL_SENSITIVE,resultSetConcurrency可以是ResultSet.CONCUR_READ_ONLY或者ResultSet.CONCUR_UPDATABLE。
所有的这些参数都是为即将得到的ResultSet服务。我们知道ResultSet包含一个指向数据当前行的指针,在最初得到ResultSet的时候,这个指针指向第一条数据之前。next方法会将指针移动至下一条记录。现在我们先来看看resultSetType参数的意义:
假设有表table1{
      id number,
      name varchar2(10)
}
TYPE_FORWARD_ONLY:ResultSet指针只能安装列顺序向前移动,也就是说在取得name列之后,将不能再返回获取id列的值;
TYPE_SCROLL_INSENSITIVE:ResultSet指针可以前后移动,INSENSITIVE表示不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反映出来;
TYPE_SCROLL_SENSITIVE:ResultSet指针可以前后移动,SENSITIVE表示及时跟踪数据库的更新,以便更改ResultSet中的数据。
在实际开发中,我们可以利用这些参数来方便地移动指针,比如:可以得到ResultSet的记录数
Statement stmt = con.createStatement(
                                      ResultSet.TYPE_SCROLL_INSENSITIVE,
                                      ResultSet. CONCUR_READ_ONLY);
       ResultSet rs = stmt.executeQuery("SELECT id, name FROM TABLE1");
       rs.last(); //移动到最后一行
       int rownum = rs.getRow(); //获得当前行的行号,即记录的条数
       rs.absolute(1);   //将指针返回至第一条记录
接着来看看resultSetConcurrency参数的意义:
CONCUR_READ_ONLY:表示当前ResultSet对象只读,不能更新;
CONCUR_UPDATABLE:表示当前ResultSet可以更新。
在实际开发中,我们可以利用CONCUR_UPDATABLE参数来实时更新ResultSet中的数据,更新有两种方式,第一种方式是更新当前数据行的数据,如:
       rs.absolute(5); // 移动rs指针至第5行数据
       rs.updateString("NAME", "daniel"); // 将该行name列的值更新为“daniel”
       rs.updateRow(); //更新数据源的数据
第二种方式是插入一行数据,如:
       rs.moveToInsertRow(); // 将指针移动至插入行,插入行是ResultSet对象中的特殊行
       rs.updateString(1, 2); // 更新插入行中第一列的值为2
       rs.updateInt(2, "daniel"); // 更新第二列中的值为daniel
       rs.insertRow();
       rs.moveToCurrentRow(); //将指针移动至插入之前的位置
其实这些参数名称都对应一个整数值:
TYPE_FORWARD_ONLY=1003
TYPE_SCROLL_INSENSITIVE=1004
TYPE_SCROLL_SENSITIVE=1005
CONCUR_READ_ONLY=1007
CONCUR_UPDATABLE=1008
 
同样的,java.sql.Connection.prepareStatement(String sql, int resultSetType, int resultSetConcurrency)也具有相同的参数意义。

这篇关于ResultSet的几个静态变量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/940340

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

变量与命名

引言         在前两个课时中,我们已经了解了 Python 程序的基本结构,学习了如何正确地使用缩进来组织代码,并且知道了注释的重要性。现在我们将进一步深入到 Python 编程的核心——变量与命名。变量是我们存储数据的主要方式,而合理的命名则有助于提高代码的可读性和可维护性。 变量的概念与使用         在 Python 中,变量是一种用来存储数据值的标识符。创建变量很简单,

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

Verybot的几个视频

1、Verybot的运动控制                 http://v.youku.com/v_show/id_XNjYxNjg4MTM2.html           2、Verybot比较初步的网络视频监控           http://v.youku.com/v_show/id_XNjYxNjkyMjg0.html           3、V

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

JS_变量

二、JS的变量 JS中的变量具有如下特征 1 弱类型变量,可以统一声明成var 2 var声明的变量可以再次声明 3 变量可以使用不同的数据类型多次赋值 4 JS的语句可以以; 结尾,也可以不用;结尾 5 变量标识符严格区分大小写 6 标识符的命名规则参照JAVA 7 如果使用了 一个没有声明的变量,那么运行时会报uncaught ReferenceError: *** is not de

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po