public interface CachedRowSet extends RowSet, Joinable
CachedRowSet
所有标准的实现必须实现。
由甲骨文公司提供的CachedRowSet
接口的参考实现是一个标准的实施。开发人员可以使用此实现,就像它是一样的,他们可以扩展它,或者他们可以选择自己编写这个接口的实现。
一个CachedRowSet
对象是用于缓存内存中的数据行的行的容器,可以不总是被连接到数据源的操作。此外,它是一个JavaBeans™部件,滚动,更新,和序列化。一个CachedRowSet
对象通常包含一个结果集的行,但它也可以包含一个表格式的任何文件的行数,如表。参考实现只支持从一个ResultSet
对象获取数据,但开发商可以延长SyncProvider
实现提供访问其他表格数据源。
应用程序可以修改一个CachedRowSet
对象的数据,而这些修改可以被传播回数据源。
一个CachedRowSet
对象是断开的行集,这意味着它使用一个数据源只是简单地连接。它连接到它的数据源,而它是读取数据来填充自己的行,而它又是传播回其基本数据源。剩下的时间,一个CachedRowSet
对象是断开的,包括在其数据被修改。被断开,使RowSet
对象,因此更瘦更容易传递到另一个组件。例如,一个断开的RowSet
对象可以被序列化,通过导线到瘦客户端如个人数字助理(PDA)。
CachedRowSet
对象CachedRowSet
(RI)来创建一个默认的
CachedRowSet
对象。
CachedRowSetImpl CRS =新cachedrowsetimpl();这个新
CachedRowSet
对象将其属性设置为一个
BaseRowSet
对象,默认性能,此外,它会有一个
RIOptimisticProvider
对象作为其同步提供者。
RIOptimisticProvider
,一个
SyncProvider
实现包括在RI,是默认的供应商,
SyncFactory
单将供应的时候没有同步提供程序指定的。
一个SyncProvider
对象提供了一个CachedRowSet
对象与读者(一RowSetReader
对象)用于从数据源填充数据本身的读取数据。读者可以从ResultSet
对象或从一个表格式的文件中读取数据。一个SyncProvider
对象还提供了一个作家(一RowSetWriter
对象)同步的任何修改的CachedRowSet
对象的数据,它是在基础数据源的数据断开。
可以实施一个作家,以行使不同程度的照顾,在检查冲突,并在避免他们。(冲突发生时,数据源中的值已在数据集稠密的本身价值。改变)的RIOptimisticProvider
执行将有很少或没有冲突,因此没有锁。更新数据源对象的值从CachedRowSet
只有不存在冲突。可以实现其他作者,使他们总是写修改后的数据的数据源,它可以通过不检查冲突或在频谱的另一端,通过设置锁足以防止数据源中的数据被改变。还有一些作者的实现可以介于两者之间。
一个CachedRowSet
对象可以使用已与SyncFactory
单身注册任何SyncProvider
实施。应用程序可以找到SyncProvider
已实现通过调用下面这行代码注册。
java.util.enumeration商= syncfactory。getregisteredproviders();
有一CachedRowSet
对象指定将使用这两种方式SyncProvider
对象。
CachedRowSet
CrS2初始化默认值,除了其SyncProvider
对象是一个指定的constructorCachedRowSetImpl CrS2 =新CachedRowSetImpl(“COM。弗莱德。供应商。highavailabilityprovider”);
CachedRowSet
方法setSyncProvider
SyncProvider
对象设置的SyncProvider
,CachedRowSet
对象创建默认构造函数。CRS。setsyncprovider(“COM。弗莱德。供应商。highavailabilityprovider”);
SyncFactory
和
SyncProvider
评论。
CachedRowSet
对象CachedRowSet
对象使用getter方法从
ResultSet
接口继承。下面的例子,其中
crs
是
CachedRowSet
对象,演示了如何遍历行,每一行中检索列值。第一个例子使用的getter方法,采取一列数的版本;第二例使用以列名的版本。列数一般用在
RowSet
对象的命令的形式是
SELECT * FROM TABLENAME
;列名时最常用的命令指定列名称。
而(CRS。next()){字符串CRS GetString(1);int id = CRS getInt(2);CLOB评论= CRS getclob(3);短部=学分获取(4);系统。出来。println(名称+“”+编号+“”+评论+“”+部);}
而(CRS。next()){字符串CRS GetString(“名”);int id = CRS。getInt(“ID”);CLOB评论= CRS。getclob(“com”);短部=学分获取(“部”);系统。出来。println(名称+“”+编号+“”+评论+“”+部);}
RowSetMetaData
RowSetMetaData
对象调用
ResultSetMetaData
和
RowSetMetaData
方法得到关于一个
CachedRowSet
对象的列的信息。下面的代码片段,其中CRS是一
CachedRowSet
对象,说明了过程。第一行创建了一个与CRS有关栏目信息
RowSetMetaData
对象。方法
getMetaData
,从
ResultSet
接口继承,返回一个
ResultSetMetaData
对象,是投到
RowSetMetaData
对象之前被分配给变量RSMD。第二行发现JRS有多少列,和第三号线的JDBC类型存储在
jrs
第二列值。
rowsetmetadata RSMD =(rowsetmetadata)getmetadata() CRS;int数= RSMD。getcolumncount();int类型= RSMD getcolumntype(2);的
RowSetMetaData
界面不同于两方面的
ResultSetMetaData
接口。
RowSet
对象使用这些方法时,它的内部填充了从不同的ResultSet
对象数据。ResultSetMetaData
方法不适用于RowSet
对象。例如,方法检索列值是否可写或只读不适用,因为所有的RowSet
对象的列将可写或只读,这取决于数据集是可更新的或不。RowSetMetaData
对象,实现必须重写定义在
java.sql.ResultSet
的
getMetaData()
方法返回一个对象
RowSetMetaData
。
CachedRowSet
对象CachedRowSet
对象类似于更新
ResultSet
对象,但由于该行没有连接到数据源,当它被更新,它必须在它的底层数据源变化效果的一个额外的步骤。调用方法
updateRow
或
insertRow
后,一
CachedRowSet
对象还必须调用方法
acceptChanges
有写入数据源的更新。下面的例子中,其光标是在
CachedRowSet
对象CRS一行,显示需要更新当前行中的列值的代码和另外两
RowSet
更新对象的基础数据源。
CRS updateshort(3,58);CRS updateint(4,150000);updaterow() CRS;acceptchanges() CRS;
下面的例子演示了移动到插入行、插入行上建立一个新的列,插入的行集,然后调用该方法acceptChanges
添加新行的基础数据源。注意的getter方法,更新方法可采取任何列的索引或列名称指定的列的作用。
movetoinsertrow() CRS;CRS。updatestring(“名”、“莎士比亚”);CRS。updateint(“身份证”,10098347);CRS。updateshort(“年龄”,58);CRS。updateint(“萨尔”150000);insertrow() CRS;movetocurrentrow() CRS;acceptchanges() CRS;
注:在insertRow()
方法插入一个CachedRowSet
对象的插入行的内容是实现定义。为CachedRowSet
接口的参考实现,插入新的一行紧跟当前行,但它可以实现在任何其他的地方插入新的行。
另一个关于这些例子说明的是如何使用的方法acceptChanges
。正是这种方法中CachedRowSet
对象返回到基础数据源的变化,呼吁RowSet
对象内部的作家写更改数据源。要做到这一点,作者必须承担费用,建立一个与该数据源的连接。前两段代码调用的方法acceptChanges
后立即调用updateRow
或insertRow
。然而,当有人改变了多行,更有效的是后updateRow
和insertRow
所有调用已叫acceptChanges
。如果acceptChanges
称只有一次,只有一个连接需要建立。
acceptChanges
,
CachedRowSet
对象的作家,一个
RowSetWriterImpl
对象,称为幕后写的行集到基础数据源的变化。作者实现了对数据源的连接并对其进行更新。
作者通过对SyncProvider
接口的一个实现了,在1节讨论的,“创造一个CachedRowSet
对象。”默认的参考实现供应商,RIOptimisticProvider
,有作家实现乐观并发控制机制。那就是,它保持在底层数据库没有锁,数据集是从数据库断开连接和简单的检查,看看是否有任何冲突之前对数据源的数据写入。如果有任何冲突,它不会将任何东西写入数据源。
由SyncProvider
类提供读/写设备是可插拔的,允许数据检索的定制和更新。如果不同的并发控制机制是需要的,不同的实施SyncProvider
可以插入使用方法setSyncProvider
。
为了使用乐观并发控制程序,该RIOptismisticProvider
既保持其当前值和原始值(它有立即的当前值,前值)。请注意,如果没有修改,在RowSet
对象的数据,它的当前值和原始值是相同的,都是价值观的RowSet
对象最初是稠密的。然而,一旦在RowSet
对象的任何价值观已经改变,当前值与原始值会有所不同,但在这个阶段,原有的价值观仍然是初始值。任何随后的变化在RowSet
对象数据,其原始值和当前值会有所不同,但其原始值,将以前的电流值。
跟踪原始值允许作家比较RowSet
对象的原始值与数据库中的值。如果数据库中的值不同于RowSet
对象的原始值,这意味着数据库中的值被改变,有冲突。是否一个作家检查冲突,什么程度的检查它,以及它如何处理冲突都取决于它是如何实现的。
BaseRowSet
类的变化。一个
CachedRowSet
目标听众的一个组成部分,要有行集中的更改通知。例如,如果一个
CachedRowSet
对象包含查询的结果,这些结果显示,说,一张桌子和一个条形图,表和条形图可以注册为该行让他们可以自己更新以反映变化的听众。成为听众的表和条形图的类必须实现接口的
RowSetListener
。然后他们可以加入到听众的
CachedRowSet
对象的列表,如在下面的几行代码说明。
CRS addrowsetlistener(表);CRS。addrowsetlistener(图);每个
CachedRowSet
方法移动光标或更改数据的变化也通知注册的监听器,所以
table
和
barGraph
将在
crs
变更通知。
CachedRowSet
对象的主要原因是应用程序的不同组件之间传递数据。因为它是可序列化的,一
CachedRowSet
对象可以使用,例如,发送一个由企业JavaBeans组件运行在服务器环境中通过网络向客户端运行在Web浏览器中执行的查询结果。
而CachedRowSet
对象是断开的,它可以比具有相同的数据ResultSet
对象要瘦。因此,它可以适用于发送数据到客户端如PDA,它是使用JDBC驱动程序由于资源限制或安全考虑不合适。因此,一个CachedRowSet
对象提供了一种手段,“行”而不需要实现完整的JDBC API。
CachedRowSet
对象的第二个主要的用途是提供滚动和
ResultSet
对象不提供这些能力本身的更新。换句话说,一个
CachedRowSet
对象可以用来增加一个JDBC技术的能力,使驾驶员(以下简称“JDBC驱动程序”)当数据库不提供滚动和更新支持。要实现使非scrollble和只读
ResultSet
对象滚动和更新的影响,程序员只需要创建一个对象,
ResultSet
CachedRowSet
填充对象的数据。这是在下面的代码片段显示,在
stmt
是
Statement
对象。
连接数据库为支撑。executeQuery(“SELECT * FROM employees”);CachedRowSetImpl CRS =新cachedrowsetimpl();CRS填充(RS);
对象crs
现在包含数据从表EMPLOYEES
,只是为对象rs
呢。不同的是,crs
光标可以向前,向后,或一个特定的行,即使rs
游标只能向前走。此外,即使rs
不是因为默认crs
是可更新的,一个CachedRowSet
对象是滚动和更新。
总之,一个CachedRowSet
对象可以被认为是一个断开的行集被缓存的数据源的一个外。瘦和序列化,它可以很容易地通过电线发送,它非常适合于发送数据到客户端。然而,一个CachedRowSet
对象也有局限性:它是由数据可以存储在内存在一个时间量规模有限。
CachedRowSet
类的另一个优点是它可以使检索和存储从其他比关系数据库数据源的数据。一个行集的读者能够读和从任何表格数据源的数据填充数据集,包括一个电子表格或平面文件。因为一个
CachedRowSet
对象及其元数据可以从头开始创建一个组件,作为一个工厂的行集可以使用这个能力来创建一个数据集包含非SQL数据源的数据。不过,可以预期的是,大部分的时间,
CachedRowSet
对象将包含了使用JDBC API SQL数据库获取数据。
ResultSet
对象需要设置,使数据库连接的性能要求。如果一个数据集使用
DriverManager
设施进行连接,需要设置JDBC URL标识相应的驱动程序的属性,它需要设置为用户名和密码的性质。如果,另一方面,该行以
DataSource
对象来连接,这是首选的方法,它不需要设置JDBC URL属性。相反,它需要为数据源的逻辑名称、用户名和密码设置属性。
注:为了使用DataSource
对象建立连接,这DataSource
对象必须有一个命名服务,使用java命名和目录接口(JNDI)API™注册。此注册通常是由一个在系统管理员的容量中扮演的人所做的。
为了能够从一个数据库中的数据填充数据集本身,需要设置一个命令属性。此属性是一个查询,是一个PreparedStatement
对象,它允许查询是在运行时设置参数占位符,而不是设计时间。设置这些参数值的占位符,一个数据集提供的设置每个数据类型值的setter方法,类似的PreparedStatement
界面提供的setter方法。
下面的代码片段说明了如何CachedRowSet
对象crs
可能命令属性设置。请注意,如果一个工具用于设置属性,这是该工具将使用的代码。
crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS " +
"WHERE CREDIT_LIMIT > ? AND REGION = ?");
的值将被用于设置命令的占位符参数包含在RowSet
对象的params
领域,这是一个Vector
对象。的CachedRowSet
类提供了一套在params
场设置元素的setter方法。下面的代码片段演示了在前面的示例中设置查询中的两个参数。
CRS setint(1,5000);CRS。如果(2,“西”);
现在的params
领域包含两个元素,每个数组元素的两个长。第一个元素是参数号;第二个元素是要设置的值。在这种情况下,params
的第一要素是1
,5000
,第二元件2
,"West"
。当应用程序调用的方法execute
,它会调用这个RowSet
对象的读者,这将反过来调用它的readData
方法。作为其实现的一部分,readData
将获得价值params
并使用它们来设置命令参数的占位符。下面的代码片段了读者这样一个理念,获得Connection
对象con
后。
PreparedStatement pstmt = con.prepareStatement(crs.getCommand());
reader.decodeParams();
// decodeParams figures out which setter methods to use and does something
// like the following:
// for (i = 0; i < params.length; i++) {
// pstmt.setObject(i + 1, params[i]);
// }
在这一点上,对crs
命令查询"SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS WHERE CREDIT_LIMIT > 5000 AND REGION = "West"
。在readData
方法执行此命令下面这行代码,它将数据从rs
,填充crs
。
ResultSet rs = pstmt.executeQuery();
前面的代码片段给幕后有什么想法;他们不会出现在一个应用程序,而不调用方法如readData
和decodeParams
。相反,下面的代码片段显示一个应用程序可以做什么。它集数据集的命令,设置命令的参数,并执行命令。简单地通过调用execute
方法,crs
填充与请求的数据从表CUSTOMERS
。
crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +
"WHERE CREDIT_LIMIT > ? AND REGION = ?");
crs.setInt(1, 5000);
crs.setString(2, "West");
crs.execute();
CachedRowSet
对象存储在内存中的数据,它可以包含在任何一个时间数据量的可用内存量确定。为了绕过这个限制,一个
CachedRowSet
对象可以在数据块的一个
ResultSet
对象中检索数据,称为页。利用这种机制,一个应用程序集的行数应包括使用方法
setPageSize
在页。换言之,如果页面大小被设置为五,一个五行的数据将从一次从数据源中取出。应用程序还可以选择设置一次可以获取的最大行数。如果设置为零的最大行数,或没有设置最大行数,则可以在一个时间段中获取的行数没有限制。
在属性被设置,该CachedRowSet
对象必须填充数据的使用方法,populate
或方法execute
。下面的代码演示如何使用该方法populate
。注意,这个版本的方法需要两个参数,一个ResultSet
手柄和从该行开始ResultSet
对象检索行。
新cachedrowsetimpl() CachedRowSet CRS =;(20)setmaxrows CRS;(4)setpagesize CRS;CRS(rshandle填充,10);运行此代码时,CRS将充满rshandle从第十排、四排。
下一个代码片段显示填充CachedRowSet
对象使用方法execute
,这可能会或可能不会Connection
对象作为参数。这段代码通过execute
的Connection
对象conhandle。
请注意,下面的代码片段和前一个代码片段有两个区别。首先,该方法setMaxRows
不叫,所以没有限制的行数,CRS可以包含。(记住,CRS总有它可以存储在内存中。多少数据压倒一切的极限)第二不同的是,你不能通过方法execute
出ResultSet
对象的行开始检索的行数。这种方法总是从第一行开始。
新cachedrowsetimpl() CachedRowSet CRS =;(5)setpagesize CRS;CRS执行(conhandle);后此代码已经运行,CRS将包含五行的命令产生的
ResultSet
CRS对象数据。CRS的作家会使用conhandle连接数据源和执行对CRS的命令。一个应用程序可以在它会对其他
CachedRowSet
对象数据的操作方式相同CRS数据操作。
进入下一页(数据块),应用程序调用的方法nextPage
。此方法创建一个新的CachedRowSet
对象和填补它的下一页数据。例如,假设CachedRowSet
对象的命令返回一个对象ResultSet
RS 1000行数据。如果页面大小被设置为100,该方法nextPage
第一次调用将创建一个包含RS的前100排CachedRowSet
对象后做什么需要做这些前100行数据,应用程序可以重新调用方法nextPage
与二100卢比从第一行CachedRowSet
对象的数据将不再是记忆,因为它与第二CachedRowSet
对象的数据替换创建另一个CachedRowSet
对象。第十打电话的方法nextPage
后,第十CachedRowSet
对象将包含数据从RS的最后100行,这是存储在内存中。在任何给定的时间,只有一个CachedRowSet
对象的数据存储在内存中。
方法nextPage
返回true
只要当前页不排false
最后一页时,有没有更多的页面。因此,它可以被使用在一个while
遍历所有的网页,就像下面的代码演示。
cachedrowsetimpl() CachedRowSet CRS =;(100)setpagesize CRS;CRS执行(conhandle);而(CRS。nextpage()){而(CRS。next()){。../ /操作块(100行各)CRS,逐行行}}之后的代码片段已经运行,应用程序必须穿过1000排,但也没有超过100行的记忆一次。
的CachedRowSet
接口定义方法previousPage
。同样的方法nextPage
类似于ResultSet
方法next
,方法previousPage
类似于ResultSet
方法previous
。类似的方法nextPage
,previousPage
创建一个CachedRowSet
对象包含行设置为页面大小的数量。所以,例如,该方法可用于在一个previousPage
while
环在前面的代码片段结束后通过浏览从最后一页到第一页的页。方法previousPage
也是类似nextPage
在它可以用在一个while
环,除了它的回报true
只要有另一个页面前,false
当没有更多的页面在它前面。
光标定位到每一页的最后一行后,如下面的代码片段中,previous
导航的方法从最后一排在每一页的第一行。代码也可以让光标在每一页上的第一行,在while
循环浏览每一页从第一行到最后一行然后使用的方法next
。
下面的代码片段是从前面的代码片段的延续,这意味着第十CachedRowSet
对象光标在最后一行。该代码将光标移动到最后一行后,该方法previous
第一次调用将光标放在最后一排。在经历了所有在最后一页的行(CachedRowSet
CRS的对象),然后代码进入while
环到第九页,经过一排排向后,到第八页,经过一排排向后,等到第一页的第一行。
afterlast() CRS;而(CRS。previous()){。../导航通过行,最后一个{而(CRS。previouspage()){afterlast() CRS;而(CRS。previous()){。..从最后一行到每一页的第一行}}
Modifier and Type | Field and Description |
---|---|
static boolean |
COMMIT_ON_ACCEPT_CHANGES
过时的。
因为这个字段是最终的(它是接口的一部分),它的值不能被更改。
|
CLOSE_CURSORS_AT_COMMIT, CONCUR_READ_ONLY, CONCUR_UPDATABLE, FETCH_FORWARD, FETCH_REVERSE, FETCH_UNKNOWN, HOLD_CURSORS_OVER_COMMIT, TYPE_FORWARD_ONLY, TYPE_SCROLL_INSENSITIVE, TYPE_SCROLL_SENSITIVE
Modifier and Type | Method and Description |
---|---|
void |
acceptChanges()
传播行更新、插入和删除这个
CachedRowSet 对象对底层数据源的变化。
|
void |
acceptChanges(Connection con)
在所有行更新、插入和删除修改数据源支持这
CachedRowSet 对象使用指定的
Connection 对象建立到数据源的连接。
|
boolean |
columnUpdated(int idx)
指示指定的列在这
CachedRowSet 对象的当前行被更新。
|
boolean |
columnUpdated(String columnName)
指示指定的列在这
CachedRowSet 对象的当前行被更新。
|
void |
commit()
每个
CachedRowSet 对象的
SyncProvider 包含
Connection 对象从
ResultSet 或JDBC传递给它的构造函数的特性。
|
CachedRowSet |
createCopy()
创建一个
RowSet 对象,在这
CachedRowSet 对象数据的深层副本。
|
CachedRowSet |
createCopyNoConstraints()
创建一个
CachedRowSet 对象,这个对象的数据
CachedRowSet 深拷贝,但它是独立的。
|
CachedRowSet |
createCopySchema()
创建一个
CachedRowSet 对象,这个对象的副本
CachedRowSet 空。
|
RowSet |
createShared()
返回一个新的
RowSet 对象,这
CachedRowSet 对象相同的数据支持。
|
void |
execute(Connection conn)
这
CachedRowSet 对象填充数据,使用给定的连接产生的结果集从数据将被读取。
|
int[] |
getKeyColumns()
返回一个数组包含一个或多个列的数字表示列,形成一个键唯一标识一行在这
CachedRowSet 对象。
|
ResultSet |
getOriginal()
返回一个包含此
CachedRowSet 对象的原始值
ResultSet 对象。
|
ResultSet |
getOriginalRow()
返回一个
ResultSet 对象包含原始值对当前行的只有这个
CachedRowSet 对象。
|
int |
getPageSize()
返回对象的
CachedRowSet 页面大小
|
RowSetWarning |
getRowSetWarnings()
获取第一个警告,呼吁这
RowSet 报道对象。
|
boolean |
getShowDeleted()
检索
boolean 指示标记为删除的行出现在当前行设置。
|
SyncProvider |
getSyncProvider()
检索此
CachedRowSet 对象的
SyncProvider 实施。
|
String |
getTableName()
返回该对象的标识符(表),用于创建此
CachedRowSet 对象。
|
boolean |
nextPage()
增量的
CachedRowSet 当前页。
|
void |
populate(ResultSet data)
这
CachedRowSet 填充对象与给定的
ResultSet 对象数据。
|
void |
populate(ResultSet rs, int startRow)
这
CachedRowSet 填充对象与给定的
ResultSet 对象数据。
|
boolean |
previousPage()
递减的
CachedRowSet 当前页。
|
void |
release()
发布这
CachedRowSet 对象的当前内容和发送
rowSetChanged 事件给所有注册的监听器。
|
void |
restoreOriginal()
这
CachedRowSet 对象恢复到其原始值,即变化前最后一组其值。
|
void |
rollback()
每个
CachedRowSet 对象的
SyncProvider 包含
Connection 对象从原来的
ResultSet 或JDBC传递给它的性质。
|
void |
rollback(Savepoint s)
每个
CachedRowSet 对象的
SyncProvider 包含
Connection 对象从原来的
ResultSet 或JDBC传递给它的性质。
|
void |
rowSetPopulated(RowSetEvent event, int numRows)
通知注册的监听器,在给定的rowsetevent对象填充一些额外的行行集对象。
|
void |
setKeyColumns(int[] keys)
这一集
CachedRowSet 对象的
keyCols 场与给定的列数的数组,形成独特的识别这种
CachedRowSet 对象行的关键。
|
void |
setMetaData(RowSetMetaData md)
与给定的
RowSetMetaData 对象这
CachedRowSet 对象的元数据集。
|
void |
setOriginalRow()
在这
CachedRowSet 对象的当前行集的行。
|
void |
setPageSize(int size)
集
CachedRowSet 对象的页面大小。
|
void |
setShowDeleted(boolean b)
设置属性
showDeleted 到给定的
boolean 值,决定是否标记为删除的行出现在当前行设置。
|
void |
setSyncProvider(String provider)
设置此
CachedRowSet 对象到一个指定的
SyncProvider 对象。
|
void |
setTableName(String tabName)
设置标识符为表,这
CachedRowSet 对象导出到给定的表名称。
|
int |
size()
在这
CachedRowSet 对象返回的行数。
|
Collection<?> |
toCollection()
将
CachedRowSet 对象到
Collection 对象包含所有这
CachedRowSet 对象的数据。
|
Collection<?> |
toCollection(int column)
将指定的列在这
CachedRowSet 对象到
Collection 对象。
|
Collection<?> |
toCollection(String column)
将指定的列在这
CachedRowSet 对象到
Collection 对象。
|
void |
undoDelete()
取消对当前行的删除通知听众,行了。
|
void |
undoInsert()
立即删除当前行从这
CachedRowSet 对象如果行已插入,并通知听众,行了。
|
void |
undoUpdate()
如果已修改行,则立即反转上次更新操作。
|
addRowSetListener, clearParameters, execute, getCommand, getDataSourceName, getEscapeProcessing, getMaxFieldSize, getMaxRows, getPassword, getQueryTimeout, getTransactionIsolation, getTypeMap, getUrl, getUsername, isReadOnly, removeRowSetListener, setArray, setAsciiStream, setAsciiStream, setAsciiStream, setAsciiStream, setBigDecimal, setBigDecimal, setBinaryStream, setBinaryStream, setBinaryStream, setBinaryStream, setBlob, setBlob, setBlob, setBlob, setBlob, setBlob, setBoolean, setBoolean, setByte, setByte, setBytes, setBytes, setCharacterStream, setCharacterStream, setCharacterStream, setCharacterStream, setClob, setClob, setClob, setClob, setClob, setClob, setCommand, setConcurrency, setDataSourceName, setDate, setDate, setDate, setDate, setDouble, setDouble, setEscapeProcessing, setFloat, setFloat, setInt, setInt, setLong, setLong, setMaxFieldSize, setMaxRows, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNCharacterStream, setNClob, setNClob, setNClob, setNClob, setNClob, setNClob, setNString, setNString, setNull, setNull, setNull, setNull, setObject, setObject, setObject, setObject, setObject, setObject, setPassword, setQueryTimeout, setReadOnly, setRef, setRowId, setRowId, setShort, setShort, setSQLXML, setSQLXML, setString, setString, setTime, setTime, setTime, setTime, setTimestamp, setTimestamp, setTimestamp, setTimestamp, setTransactionIsolation, setType, setTypeMap, setURL, setUrl, setUsername
absolute, afterLast, beforeFirst, cancelRowUpdates, clearWarnings, close, deleteRow, findColumn, first, getArray, getArray, getAsciiStream, getAsciiStream, getBigDecimal, getBigDecimal, getBigDecimal, getBigDecimal, getBinaryStream, getBinaryStream, getBlob, getBlob, getBoolean, getBoolean, getByte, getByte, getBytes, getBytes, getCharacterStream, getCharacterStream, getClob, getClob, getConcurrency, getCursorName, getDate, getDate, getDate, getDate, getDouble, getDouble, getFetchDirection, getFetchSize, getFloat, getFloat, getHoldability, getInt, getInt, getLong, getLong, getMetaData, getNCharacterStream, getNCharacterStream, getNClob, getNClob, getNString, getNString, getObject, getObject, getObject, getObject, getObject, getObject, getRef, getRef, getRow, getRowId, getRowId, getShort, getShort, getSQLXML, getSQLXML, getStatement, getString, getString, getTime, getTime, getTime, getTime, getTimestamp, getTimestamp, getTimestamp, getTimestamp, getType, getUnicodeStream, getUnicodeStream, getURL, getURL, getWarnings, insertRow, isAfterLast, isBeforeFirst, isClosed, isFirst, isLast, last, moveToCurrentRow, moveToInsertRow, next, previous, refreshRow, relative, rowDeleted, rowInserted, rowUpdated, setFetchDirection, setFetchSize, updateArray, updateArray, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateAsciiStream, updateBigDecimal, updateBigDecimal, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBinaryStream, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBlob, updateBoolean, updateBoolean, updateByte, updateByte, updateBytes, updateBytes, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateCharacterStream, updateClob, updateClob, updateClob, updateClob, updateClob, updateClob, updateDate, updateDate, updateDouble, updateDouble, updateFloat, updateFloat, updateInt, updateInt, updateLong, updateLong, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNCharacterStream, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNClob, updateNString, updateNString, updateNull, updateNull, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateObject, updateRef, updateRef, updateRow, updateRowId, updateRowId, updateShort, updateShort, updateSQLXML, updateSQLXML, updateString, updateString, updateTime, updateTime, updateTimestamp, updateTimestamp, wasNull
isWrapperFor, unwrap
getMatchColumnIndexes, getMatchColumnNames, setMatchColumn, setMatchColumn, setMatchColumn, setMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn, unsetMatchColumn
@Deprecated static final boolean COMMIT_ON_ACCEPT_CHANGES
CachedRowSet
对象的
SyncProvider
提交更改时,
acceptChanges()
叫做。如果设置为false,变化将被提交到一个
不的
CachedRowSet
接口交易方法叫做。
commit()
,
rollback()
,
Constant Field Values
void populate(ResultSet data) throws SQLException
CachedRowSet
填充对象与给定的
ResultSet
对象数据。
这种方法可以用来作为一种替代方法的execute
当一个应用程序具有一个开放的ResultSet
对象连接。使用方法populate
可以比使用的execute
方法不带参数的版本更有效,因为它不打开一个新的连接,并重新执行该CachedRowSet
对象的命令。使用populate
方法相比,使用更execute
需要ResultSet
对象的版本更方便。
data
-读到这
CachedRowSet
对象包含数据的
ResultSet
对象
SQLException
如果空
ResultSet
对象提供或
CachedRowSet
对象不相关的
ResultSetMetaData
对象检索
execute(java.sql.Connection)
,
ResultSet
,
ResultSetMetaData
void execute(Connection conn) throws SQLException
CachedRowSet
对象填充数据,使用给定的连接产生的结果集从数据将被读取。这种方法应该关闭所有数据库连接,它创造了确保这
CachedRowSet
对象断开,除非是从数据源或数据源中的数据读写数据。
这CachedRowSet
目标读者将利用Conn建立到数据源的连接,它可以执行的行集的命令和读取数据从产生的ResultSet
对象到这个CachedRowSet
对象。这种方法也关闭了Conn后有密集的这CachedRowSet
对象。
如果这个方法被调用当一个实现已经被填充,内容和元数据是(重新)设置。另外,如果这个方法在方法acceptChanges
被称为提交优秀的更新,这些更新丢失。
conn
-有效性的标准的JDBC
Connection
对象
SQLException
-如果一个无效的
Connection
对象提供或建立到数据源的连接发生错误
populate(java.sql.ResultSet)
,
Connection
void acceptChanges() throws SyncProviderException
CachedRowSet
对象对底层数据源的变化。
此方法调用这个对象的作家CachedRowSet
做幕后工作。标准CachedRowSet
实现应该使用SyncFactory
独生子女获得SyncProvider
实例提供了一个RowSetWriter
对象(作家)。作者试图传播这CachedRowSet
对象到数据源的变化。
当方法acceptChanges
执行成功,除了改变写入数据源,它的值在当前行在原有的行的值。
根据不同的SyncProvider
实现所采用的同步水平,笔者将比较原始值与数据源中的冲突检查。当有冲突,例如RIOptimisticProvider
实施,抛出一个SyncProviderException
不写任何数据源。
应用程序可以选择抓SyncProviderException
对象和检索包含SyncResolver
对象。对象列表的SyncResolver
冲突排排和设置当前正在解决冲突,避免进一步冲突数据源上的锁。此外,对于每一个冲突,它提供了检查冲突的方法,并设置应该坚持在数据源中的值。在所有的冲突已经解决,应用程序必须调用acceptChanges
方法再写解决值的数据源。如果数据源中的所有的值都已经被保存的值,该方法acceptChanges
不。
一些提供程序实现可以使用锁来确保没有冲突。在这种情况下,它是保证作家能成功改变写入数据源的方法时,acceptChanges
叫做。这种方法可以在方法updateRow
,insertRow
立即打电话,或deleteRow
一直叫,但更有效的是只有一次,毕竟已经做出了改变,所以只有一个连接需要建立呼叫它。
注:本acceptChanges()
方法将确定COMMIT_ON_ACCEPT_CHANGES
设置为true或不。如果它被设置为真,则同步中的所有更新都将提交给数据源。否则,应用显式调用必须 commit()
或rollback()
合适的方法。
SyncProviderException
-如果基本同步提供者的作者没写回数据源的更新
acceptChanges(java.sql.Connection)
,
RowSetWriter
,
SyncFactory
,
SyncProvider
,
SyncProviderException
,
SyncResolver
void acceptChanges(Connection con) throws SyncProviderException
CachedRowSet
对象使用指定的
Connection
对象建立到数据源的连接。
acceptChanges
方法的其他版本不通过连接因为它使用已经RowSet
对象中定义的Connection
对象,用以填充它最初的连接。
这种形式的方法acceptChanges
相似,不需要参数的形式;然而,不同于其他的形式,这种形式只能在底层的数据源是一个JDBC数据源。更新Connection
性质必须由SyncProvider
用于RowSetWriter
配置重置确保对象的内容是同步的CachedRowSet
正确。
当方法acceptChanges
执行成功,除了改变写入数据源,它的值在当前行在原有的行的值。
根据不同的SyncProvider
实现所采用的同步水平,笔者将比较原始值与数据源中的冲突检查。当有冲突,例如RIOptimisticProvider
实施,抛出一个SyncProviderException
不写任何数据源。
应用程序可以选择抓SyncProviderException
对象和检索包含SyncResolver
对象。对象列表的SyncResolver
冲突排排和设置当前正在解决冲突,避免进一步冲突数据源上的锁。此外,对于每一个冲突,它提供了检查冲突的方法,并设置应该坚持在数据源中的值。在所有的冲突已经解决,应用程序必须调用acceptChanges
方法再写解决值的数据源。如果数据源中的所有的值都已经被保存的值,该方法acceptChanges
不。
一些提供程序实现可以使用锁来确保没有冲突。在这种情况下,它是保证作家能成功改变写入数据源的方法时,acceptChanges
叫做。这种方法可以在方法updateRow
,立即打电话insertRow
,或deleteRow
一直叫,但更有效的是只有一次,毕竟已经做出了改变,所以只有一个连接需要建立呼叫它。
注:本acceptChanges()
方法将确定COMMIT_ON_ACCEPT_CHANGES
设置为true或不。如果它被设置为真,则同步中的所有更新都将提交给数据源。否则,应用显式调用必须 commit
或rollback
合适的方法。
con
-一个标准的JDBC
Connection
对象
SyncProviderException
-如果基本同步提供者的作者没写回数据源的更新
acceptChanges()
,
RowSetWriter
,
SyncFactory
,
SyncProvider
,
SyncProviderException
,
SyncResolver
void restoreOriginal() throws SQLException
CachedRowSet
对象恢复到其原始值,即变化前最后一组其值。如果没有更改的行集或一组的变化,原有的价值,这
CachedRowSet
对象填充的值;否则,原有的价值是它马上就其当前值前值。
调用此方法时,一个CachedRowSet
实施必须确保所有的更新、插入和删除当前行集的实例是由以前的值替换。此外,光标应复位到第一排和rowSetChanged
事件应该被解雇通知所有注册的监听器。
SQLException
-如果发生错误的来回滚动,这
CachedRowSet
对象的当前值到其以前的值
RowSetListener.rowSetChanged(javax.sql.RowSetEvent)
void release() throws SQLException
CachedRowSet
对象的当前内容和发送
rowSetChanged
事件给所有注册的监听器。任何优秀的更新被丢弃,数据集不包含行调用此方法后。有与底层数据源没有相互作用,和任何数据集内容、元数据和内容的更新应该是不可恢复的。
这CachedRowSet
对象应锁定到它的内容和相关的更新,完全清除,从而防止脏读取由其他组件保持参考这个RowSet
对象。此外,内容不能等到所有阅读这CachedRowSet
组件对象完成读取发布。这CachedRowSet
对象应该是发射后rowSetChanged
事件行为恢复正常。
元数据,包括JDBC性能和同步SPI性能,保持未来的使用。重要的是性能,如command
属性是相关的原始数据源从最初建立这个CachedRowSet
对象。
该方法把一个数据集,相对于close
方法,这标志着整个数据集作为可允许垃圾收集器的行集的java虚拟机资源。
SQLException
冲洗这
CachedRowSet
对象的内容
RowSetListener.rowSetChanged(javax.sql.RowSetEvent)
,
ResultSet.close()
void undoDelete() throws SQLException
此外,多行删除取消可通过调整位置的光标使用任何的光标位置等控制方法:
CachedRowSet.absolute
CachedRowSet.first
CachedRowSet.last
SQLException
如果(1)当前行是否已被删除或(2)光标在插入行,第一行之前,或之后的最后一行
undoInsert()
,
ResultSet.cancelRowUpdates()
void undoInsert() throws SQLException
CachedRowSet
对象如果行已插入,并通知听众,行了。这种方法可以随时调用一个行集的寿命,假设目前排在例外的局限性(见下文),取消对当前行的行插入。
此外,行插入多个取消可通过调整位置的光标使用任何的光标位置等控制方法:
CachedRowSet.absolute
CachedRowSet.first
CachedRowSet.last
SQLException
如果(1)当前行尚未插入或(2)将光标在第一排,最后一排后,或在插入行
undoDelete()
,
ResultSet.cancelRowUpdates()
void undoUpdate() throws SQLException
acceptChanges
)或人口。此方法也可以被调用,同时执行插入行的更新。
undoUpdate
可以随时要求一个行集的一生;但是,发生后同步,这个方法没有效果直到出现的行集数据的进一步的修改。
SQLException
-如果光标在第一行或最后一行在这
CachedRowSet
对象后
undoDelete()
,
undoInsert()
,
ResultSet.cancelRowUpdates()
boolean columnUpdated(int idx) throws SQLException
CachedRowSet
对象的当前行被更新。
idx
-
int
标识列为检查更新
true
如果指定列已明显
false
否则更新;
SQLException
如果光标在插入行,第一行之前,或之后的最后一行
DatabaseMetaData.updatesAreDetected(int)
boolean columnUpdated(String columnName) throws SQLException
CachedRowSet
对象的当前行被更新。
columnName
-
String
对象给予的列名称进行检查更新
true
如果柱已经明显
false
否则更新;
SQLException
如果光标在插入行,第一行之前,或之后的最后一行
DatabaseMetaData.updatesAreDetected(int)
Collection<?> toCollection() throws SQLException
CachedRowSet
对象到
Collection
对象包含所有这
CachedRowSet
对象的数据。实现有一些纬度如何能够代表这个
Collection
对象因为
Collection
框架的抽象本质。每一行必须是一个通用的
Collection
实现或专业
Collection
实施充分的代表,如
TreeMap
对象或
Vector
对象。一个SQL
NULL
列值必须是java编程语言的
null
。
为CachedRowSet
接口标准的参考实现使用一个TreeMap
对象的值的行集,每行包含在Vector
对象。预计大多数实现将做相同的。
这张Map将在提升的关键点收集保证TreeMap
型,根据关键的类的自然顺序排序。每一个关键的参考Vector
对象对应一行一RowSet
对象。因此,每个Vector
对象的大小必须相等RowSet
对象中的列数。由TreeMap
收集使用的关键是由实现确定,可选择的杠杆设置键,可在内部RowSet
表格结构的关键已经设置在RowSet
对象本身或潜在的SQL数据的美德。
Collection
对象包含的值在每一行在这
CachedRowSet
对象
SQLException
-如果出现错误产生的集合
toCollection(int)
,
toCollection(String)
Collection<?> toCollection(int column) throws SQLException
CachedRowSet
对象到
Collection
对象。实现有一些纬度如何能够代表这个
Collection
对象因为
Collection
框架的抽象本质。每一列的值应该是一个通用的
Collection
实现或专业
Collection
实施充分的代表,如
Vector
对象。一个SQL
NULL
列值必须是java编程语言的
null
。
标准的参考实现使用一个Vector
对象包含该列的值,并将大部分实现也会做同样的事。如果一个Vector
对象时,它的大小必须正好等于该CachedRowSet
对象的行数。
column
-
int
指示其值是在一个
Collection
对象表示的列
Collection
对象包含存储在指定的列的值
CachedRowSet
对象
SQLException
-如果出现错误产生的集合或无效的列ID设置
toCollection()
,
toCollection(String)
Collection<?> toCollection(String column) throws SQLException
CachedRowSet
对象到
Collection
对象。实现有一些纬度如何能够代表这个
Collection
对象因为
Collection
框架的抽象本质。每一列的值应该是一个通用的
Collection
实现或专业
Collection
实施充分的代表,如
Vector
对象。一个SQL
NULL
列值必须是java编程语言的
null
。
标准的参考实现使用一个Vector
对象包含该列的值,并将大部分实现也会做同样的事。如果一个Vector
对象时,它的大小必须正好等于该CachedRowSet
对象的行数。
column
-
String
对象给其值的列的名称是一个集合表示
Collection
对象包含存储在指定的列的值
CachedRowSet
对象
SQLException
-如果出现错误产生的集合或无效的列ID设置
toCollection()
,
toCollection(int)
SyncProvider getSyncProvider() throws SQLException
CachedRowSet
对象的
SyncProvider
实施。在内部,这种方法是通过一个数据集用于触发读取或写入的数据集和数据源之间的行为。例如,一个数据集可能需要掌握的行集的读者(
RowSetReader
对象)从
SyncProvider
允许行集是稠密的。
rowsetreader rowsetreader = null;syncprovider提供商=syncfactory。getInstance(“javax. SQL。行集。供应商。RIOptimisticProvider);如果(供应商是rioptimisticprovider){rowsetreader =供应商。getrowsetreader();}假设rowsetreader是私人领域,可以在该行实现,当应用程序调用的
execute
方法,它会要求读者的
readData
方法来填充
RowSet
对象。
rowsetreader。readdata((rowsetinternal)本);
此外,应用程序可以使用SyncProvider
此方法返回的对象调用方法返回的SyncProvider
对象信息,包括供应商、版本、供应商识别,同步等级信息,并锁定目前已设置。
SyncProvider
对象时设置了行集被实例化,或者如果没有设置,默认提供程序
SQLException
-如果发生错误而返回
SyncProvider
对象
setSyncProvider(java.lang.String)
void setSyncProvider(String provider) throws SQLException
CachedRowSet
对象到一个指定的
SyncProvider
对象。这种方法允许
SyncProvider
对象被重置。
一个CachedRowSet
实施应该实例化一个可用的SyncProvider
机制,但在有些情况下,重置SyncProvider
对象是可取或必要的。例如,一个应用程序可能要使用默认的SyncProvider
对象一段时间后再选择使用一个供应商,最近已成为可用,更适合它的需要。
重置SyncProvider
对象使RowSet
对象从SyncFactory
请求一个新的SyncProvider
实现。这已重置所有以前的联系和关系与原始数据源的影响,有可能彻底改变一个断开的行集的同步行为。
provider
-
String
对象的完全限定类名一
SyncProvider
实施
SQLException
-如果在尝试重置
SyncProvider
执行发生错误
getSyncProvider()
int size()
CachedRowSet
对象返回的行数。
void setMetaData(RowSetMetaData md) throws SQLException
RowSetMetaData
对象这
CachedRowSet
对象的元数据集。当一个
RowSetReader
对象读取数据集的内容,它创建了一个
RowSetMetaData
对象并初始化它的
RowSetMetaData
实现使用方法。参考实现使用
RowSetMetaDataImpl
类。当读者完成了阅读的行集的内容,这种方法称为内部通过
RowSetMetaData
目的行集。
md
-包含在这
CachedRowSet
对象列的元数据
RowSetMetaData
对象
SQLException
如果无效的元数据提供给数据集
ResultSet getOriginal() throws SQLException
ResultSet
对象包含此
CachedRowSet
对象的原始值。
为ResultSet
对象光标应定位在第一行的前面。此外,返回的ResultSet
对象应具备以下性能:
一RowSet
对象原有的价值是它与底层数据源上同步前值。如果没有同步,原有的价值,将价值的RowSet
对象填充。这种方法被称为内部,当应用程序调用对象的方法和SyncProvider
acceptChanges
进行冲突检查。如果是这样的话,作者将原始的值与当前在数据源中的值进行比较,以检查冲突。
ResultSet
对象包含此
CachedRowSet
对象的原始值
SQLException
-如果出现错误产生的
ResultSet
对象
ResultSet getOriginalRow() throws SQLException
ResultSet
对象包含原始值对当前行的只有这个
CachedRowSet
对象。
为ResultSet
对象光标应定位在第一行的前面。此外,返回的ResultSet
对象应具备以下性能:
SQLException
-如果没有当前行
setOriginalRow()
void setOriginalRow() throws SQLException
CachedRowSet
对象的当前行集的行。
此方法被调用后,在当前行中的任何修改后的值都与数据源同步。当前行必须被标记为不再插入、删除或更新的。
一个叫setOriginalRow
是不可逆转的。
SQLException
-如果没有当前行或遇到错误复位的原行的内容
getOriginalRow()
String getTableName() throws SQLException
CachedRowSet
对象。此名称可以设置在多个场合,该规范不规定可能发生多少次,或者是否标准的实现应该保持以前的表名称的跟踪。
String
物体的表,是此
CachedRowSet
对象或
null
数据源如果没有名字已经设置为表的名称
SQLException
-如果遇到错误返回的表名称
ResultSetMetaData.getTableName(int)
void setTableName(String tabName) throws SQLException
CachedRowSet
对象导出到给定的表名称。作者用这个名字来确定哪些表时要使用的值比较,与
CachedRowSet
对象值的数据源同步的尝试中。表的标识也表明修改的值从这个
CachedRowSet
对象应写。
这CachedRowSet
对象的实现可能来自公司内部的RowSetMetaDataImpl
对象获得的名字。
tabName
-
String
对象识别从导出的这
CachedRowSet
对象表;不能
null
但可能是一个空字符串
SQLException
-如果遇到错误或是
null
但是命名表
RowSetMetaData.setTableName(int, java.lang.String)
,
RowSetWriter
,
SyncProvider
int[] getKeyColumns() throws SQLException
CachedRowSet
对象。
CachedRowSet
对象行的主键。如果没有列是主键的代表,则该数组应该是空的。
SQLException
-如果这
CachedRowSet
对象是空的
setKeyColumns(int[])
,
Joinable.getMatchColumnIndexes()
,
Joinable.getMatchColumnNames()
void setKeyColumns(int[] keys) throws SQLException
CachedRowSet
对象的
keyCols
场与给定的列数的数组,形成独特的识别这种
CachedRowSet
对象行的关键。
如果一个CachedRowSet
对象成为一个JoinRowSet
对象的一部分,钥匙由该方法定义和由此产生的约束,如果指定为键列也成为比赛的柱子保持。
keys
-
int
指示列,形成这个
CachedRowSet
对象主键数组;数组中的每个元素必须大于
0
小于或等于该行中的列数
SQLException
-如果任何的数据在给定的数组不符合该行集
getKeyColumns()
,
Joinable.setMatchColumn(String)
,
Joinable.setMatchColumn(int)
RowSet createShared() throws SQLException
RowSet
对象,这
CachedRowSet
对象相同的数据支持。实际上,无论是
CachedRowSet
对象有相同数据的指针。因此,由一个副本所做的任何更改都是可见的,以原始和任何其他重复,就像原来的变化是可见的,它所有的重复。如果重复调用一个方法改变底层数据的方法,它要求通知所有注册的监听器一样当它被称为原
CachedRowSet
对象。
此外,任何RowSet
对象通过此方法创建将为这CachedRowSet
对象具有相同的性质。例如,如果这CachedRowSet
对象是只读的,它的所有副本也将是只读的。如果改为可更新的副本也成为可更新。
注意:如果多个线程访问RowSet
对象从createShared()
方法创建的,以下行为是指定保存共享数据完整性:读取和写入所有的共享RowSet
对象应连续之间的每个对象和单一的底层表结构。
RowSet
对象具有相同的性质,这
CachedRowSet
对象,在同一个数据指针
SQLException
-如果发生错误或克隆不在底层平台的支持
RowSetEvent
,
RowSetListener
CachedRowSet createCopy() throws SQLException
RowSet
对象,在这
CachedRowSet
对象数据的深层副本。相反,从
createShared
调用所生成的
RowSet
对象,对原有的
RowSet
对象副本更新不得对原
RowSet
对象可见。同时,与原
RowSet
注册事件监听器必须没有范围在新
RowSet
副本。此外,任何建立的约束限制,必须保持。
RowSet
对象,这
CachedRowSet
对象的深层副本,是完全独立的,这
CachedRowSet
对象
SQLException
如果产生的这
CachedRowSet
对象复制发生错误
createShared()
,
createCopySchema()
,
createCopyNoConstraints()
,
RowSetEvent
,
RowSetListener
CachedRowSet createCopySchema() throws SQLException
CachedRowSet
对象,这个对象的副本
CachedRowSet
空。复印件必须不包含任何内容只代表原
CachedRowSet
对象表结构。此外,主键或外键约束集的始发
CachedRowSet
对象必须在新的空
CachedRowSet
对象同样执行。在对比的
RowSet
对象从一个
createShared
方法调用生成,对副本的
createCopySchema
方法这
CachedRowSet
对象更新不能看到它。
应用程序可以从CachedRowSet
对象WebRowSet
此方法返回的对象为出口RowSet
架构定义的XML用于将来使用。
CachedRowSet
空复制对象
SQLException
-如果这
CachedRowSet
克隆对象的结构发生了一个错误
createShared()
,
createCopySchema()
,
createCopyNoConstraints()
,
RowSetEvent
,
RowSetListener
CachedRowSet createCopyNoConstraints() throws SQLException
CachedRowSet
对象,这个对象的数据
CachedRowSet
深拷贝,但它是独立的。相反,从
createShared
方法调用所产生的
RowSet
对象,做一份本
CachedRowSet
对象更新不能看到它。另外,有这
CachedRowSet
对象注册事件侦听器必须在新的
RowSet
对象范围。此外,任何的约束限制了这
CachedRowSet
对象必须
不保持副本。
CachedRowSet
对象,这
CachedRowSet
对象的深层副本,是完全独立的,这
CachedRowSet
对象
SQLException
如果产生的这
CachedRowSet
对象复制发生错误
createCopy()
,
createShared()
,
createCopySchema()
,
RowSetEvent
,
RowSetListener
RowSetWarning getRowSetWarnings() throws SQLException
RowSet
报道对象。在这
RowSet
对象随后的警告将被锁在
RowSetWarning
对象,该方法返回。每一个新的行读取时,警告链会自动清除。这种方法可能不被称为行集对象已关闭;这样做将导致
SQLException
被。
RowSetWarning
报道对象或空如果没有
SQLException
-如果调用此方法在一个封闭的行集
RowSetWarning
boolean getShowDeleted() throws SQLException
boolean
指示标记为删除的行出现在当前行设置。如果
true
返回,删除行与当前可见行。如果
false
返回当前行,行集是不可见的。默认值是
false
标准数据集的实现可能选择限制这种行为出于安全的考虑或更适合特定的部署方案。这是左作为实现定义的,不代表标准的行为。
注:允许删除的行保持可见的复杂的一些标准的JDBC RowSet
实现方法的行为。然而,大多数的行集,用户可以简单地忽略这额外的细节,因为只有非常专业的应用程序可能会想利用这一特点。
true
如果删除的行是可见的;
false
否则
SQLException
-如果一个行集的实现是无法确定是否标记为删除的行是可见的
setShowDeleted(boolean)
void setShowDeleted(boolean b) throws SQLException
showDeleted
到给定的
boolean
值,决定是否标记为删除的行出现在当前行设置。如果该值设置为
true
,删除行立即可见,当前行集。如果该值设置为
false
,被删除的行设置为不可见行的当前设置。
标准数据集的实现可能选择限制这种行为出于安全的考虑或更适合特定的部署方案。这是左作为实现定义的,不代表标准的行为。
b
-
true
如果删除的行应该显示;
false
否则
SQLException
-如果一个行集的实现是无法重置已删除的行是否应该是可见的
getShowDeleted()
void commit() throws SQLException
CachedRowSet
对象的
SyncProvider
包含
Connection
对象从
ResultSet
或JDBC传递给它的构造函数的特性。该方法将
Connection
提交方法允许灵活的自动提交或非自动提交事务控制支持。
让所有的变化都是由acceptChanges()
方法进行自上次提交/回滚永久。此方法应仅在自动提交模式已禁用时使用。
SQLException
-如果一个数据库访问错误发生或在这
CachedRowSet
对象连接在自动提交模式
Connection.setAutoCommit(boolean)
void rollback() throws SQLException
CachedRowSet
对象的
SyncProvider
包含
Connection
对象从原来的
ResultSet
或JDBC传递给它的性质。
撤消所有更改在当前事务。此方法应仅在自动提交模式已禁用时使用。
SQLException
-如果一个数据库访问错误发生或在这
CachedRowSet
对象连接在自动提交模式。
void rollback(Savepoint s) throws SQLException
CachedRowSet
对象的
SyncProvider
包含
Connection
对象从原来的
ResultSet
或JDBC传递给它的性质。
在当前事务撤消所有更改回过去Savepoint
事务标记。此方法应仅在自动提交模式已禁用时使用。
s
-
Savepoint
事务标记
SQLException
-如果一个数据库访问错误发生或在这
CachedRowSet
对象连接在自动提交模式。
void rowSetPopulated(RowSetEvent event, int numRows) throws SQLException
numRows
参数确保这个事件只会被解雇的每一
numRow
。
事件源的方法可event.getsource检索。
event
-
RowSetEvent
包含
RowSet
对象,事件的源头
numRows
当填充,行间隔,火应该
CachedRowSet
人口数;默认值是零;不能小于
fetchSize
或零
SQLException
-
numRows < 0 or numRows < getFetchSize()
void populate(ResultSet rs, int startRow) throws SQLException
CachedRowSet
填充对象与给定的
ResultSet
对象数据。而对
populate(ResultSet)
方法有关,一个额外的参数提供的起始位置在
ResultSet
从哪里来填充CachedRowSet实例。
这种方法可以用来作为一种替代方法的execute
当一个应用程序具有一个开放的ResultSet
对象连接。使用方法populate
可以比使用的execute
方法不带参数的版本更有效,因为它不打开一个新的连接,并重新执行该CachedRowSet
对象的命令。使用populate
方法相比,使用更execute
需要ResultSet
对象的版本更方便。
startRow
在
ResultSet
位置从哪里开始填充记录该
CachedRowSet
rs
-读到这
CachedRowSet
对象包含数据的
ResultSet
对象
SQLException
如果空
ResultSet
对象提供或
CachedRowSet
对象不相关的
ResultSetMetaData
对象检索
execute(java.sql.Connection)
,
populate(ResultSet)
,
ResultSet
,
ResultSetMetaData
void setPageSize(int size) throws SQLException
CachedRowSet
对象的页面大小。一个
CachedRowSet
可以被配置来填充自己的页面大小尺寸的批行。当
populate()
或
execute()
称,
CachedRowSet
获取额外的页面根据用来填充数据集的SQL查询。
size
的
CachedRowSet
页面大小
SQLException
-如果出现错误设置
CachedRowSet
页面大小或者页面大小小于0。
int getPageSize()
CachedRowSet
页面大小
int
页面大小
boolean nextPage() throws SQLException
CachedRowSet
当前页。这使得
CachedRowSet
实现取下一页大小的行和填充数据集,如果剩余行保持在用于原始的SQL查询范围填充数据集。
SQLException
-如果出现错误,取下一个页面,或者如果这个方法被调用之前过早填充或执行。
boolean previousPage() throws SQLException
CachedRowSet
当前页。这使得
CachedRowSet
实现取前一页大小的行和填充数据集。行量返回前一页必须始终保持在用来填充数据集的SQL查询范围。
SQLException
-如果出现错误,取前一页,或者如果这个方法被调用之前过早填充或执行。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.