-
- All Known Subinterfaces:
-
CachedRowSet,FilteredRowSet,JdbcRowSet,JoinRowSet,WebRowSet
public interface Joinable1.0背景
所述Joinable接口提供用于获取和设置匹配列,其为用于形成SQL的基础方法JOIN通过加入形成RowSet对象到JoinRowSet对象。任何标准的
RowSet实现可以实现Joinable接口,以便添加到一个JoinRowSet对象。 实现此接口使RowSet对象能够使用Joinable方法,它们设置,检索和获取有关匹配列的信息。 一个应用程序可能会增加一个RowSet尚未实现的对象Joinable接口向JoinRowSet对象,但这样做它必须使用的一个JoinRowSet.addRowSet方法即采用既RowSet对象和匹配列或阵列RowSet对象和阵列的匹配列。要访问
Joinable接口中的方法,一个RowSet对象实现了五个标准RowSet接口中的至少一个,并且还实现了Joinable接口。 此外,大多数RowSet对象扩展了BaseRowSet类。 例如:class MyRowSetImpl extends BaseRowSet implements CachedRowSet, Joinable { : : }2.0使用指南
Joinable接口中的方法允许RowSet对象设置匹配列,检索匹配列或取消设置匹配列,该列是可以基于SQLJOIN的列。 可以将实现这些方法的类的实例添加到JoinRowSet对象中,以允许建立SQLJOIN关系。CachedRowSet crs = new MyRowSetImpl(); crs.populate((ResultSet)rs); (Joinable)crs.setMatchColumnIndex(1); JoinRowSet jrs = new JoinRowSetImpl(); jrs.addRowSet(crs);在前面的例子中, crs是一个已经实现了Joinable接口的CachedRowSet对象。 在下面的示例中, crs2没有,所以它必须提供匹配列作为addRowSet方法的参数。 此示例假定列1是匹配列。CachedRowSet crs2 = new MyRowSetImpl(); crs2.populate((ResultSet)rs); JoinRowSet jrs2 = new JoinRowSetImpl(); jrs2.addRowSet(crs2, 1);JoinRowSet接口使得可以将一个或多个RowSet对象的数据合并到一个表中,而不必承担创建与数据库的连接的费用。 因此,非常适合使用断开连接的RowSet对象。 然而,任何RowSet对象都可以实现该接口,而不管其是否被连接或断开。 请注意,始终连接到其数据源的JdbcRowSet对象可以直接成为SQLJOIN一部分,而不必成为JoinRowSet对象的一部分。3.0管理多个匹配列
传入setMatchColumn方法的索引数组指示除了将用于匹配的列之外,还要设置多少个匹配列(数组的长度)。 例如:int[] i = {1, 2, 4, 7}; // indicates four match columns, with column // indexes 1, 2, 4, 7 participating in the JOIN. Joinable.setMatchColumn(i);随后的匹配列可以如下添加到不同的Joinable对象(已实现Joinable接口的RowSet对象)。int[] w = {3, 2, 5, 3}; Joinable2.setMatchColumn(w);当一个应用程序增加了两个或更多RowSet对象到JoinRowSet对象,所述阵列中的索引的顺序是特别重要的。 该数组的每个索引直接映射到先前添加的相应索引RowSet对象。 如果发生重叠或下划线,匹配列数据将在添加另外的JoinableRowSet并且需要与匹配列数据相关联的情况下进行维护。 因此,应用程序可以按任何顺序设置多个匹配列,但此顺序对于SQLJOIN的结果有直接的影响。当使用列名称而不是列索引来指示匹配列时,此断言以完全相同的方式适用。
- 从以下版本开始:
- 1.5
- 另请参见:
-
JoinRowSet
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 int[]getMatchColumnIndexes()检索使用方法setMatchColumn(int[] columnIdxes)为此RowSet对象设置的匹配列的索引。String[]getMatchColumnNames()检索使用方法setMatchColumn(String [] columnNames)为此RowSet对象设置的匹配列的名称。voidsetMatchColumn(int columnIdx)将指定列设置为此RowSet对象的匹配列。voidsetMatchColumn(int[] columnIdxes)将指定的列设置为此RowSet对象的匹配列。voidsetMatchColumn(String columnName)将指定列设置为此RowSet对象的匹配列。voidsetMatchColumn(String[] columnNames)将指定的列设置为此RowSet对象的匹配列。voidunsetMatchColumn(int columnIdx)将指定的列RowSet为该RowSet对象的匹配列。voidunsetMatchColumn(int[] columnIdxes)将指定的列RowSet为此RowSet对象的匹配列。voidunsetMatchColumn(String columnName)将指定的列RowSet为此RowSet对象的匹配列。voidunsetMatchColumn(String[] columnName)将指定的列RowSet为此RowSet对象的匹配列。
-
-
-
方法详细信息
-
setMatchColumn
void setMatchColumn(int columnIdx) throws SQLException将指定列设置为此RowSet对象的匹配列。 一个JoinRowSet对象现在可以根据匹配列添加此RowSet对象。子接口如
CachedRowSet接口定义了方法CachedRowSet.setKeyColumns,这允许在特定列上强制执行主键语义。setMatchColumn(int columnIdx)方法的实现应确保当CachedRowSet对象将主键列设置为匹配列时,对关键列的约束将保持不变。- 参数
-
columnIdx- 标识要设置为匹配列的列的索引的int - 异常
-
SQLException- 如果设置无效的列索引 - 另请参见:
-
setMatchColumn(int[]),unsetMatchColumn(int)
-
setMatchColumn
void setMatchColumn(int[] columnIdxes) throws SQLException将指定的列设置为此RowSet对象的匹配列。 一个JoinRowSet对象现在可以根据匹配列添加这个RowSet对象。- 参数
-
columnIdxes- 一个columnIdxes的数组,int标识要设置为匹配列的列的索引 - 异常
-
SQLException- 如果设置了无效的列索引 - 另请参见:
-
setMatchColumn(int[]),unsetMatchColumn(int[])
-
setMatchColumn
void setMatchColumn(String columnName) throws SQLException
将指定列设置为此RowSet对象的匹配列。 一个JoinRowSet对象现在可以根据匹配列添加此RowSet对象。子接口(如
CachedRowSet接口)定义了方法CachedRowSet.setKeyColumns,它允许在特定列上强制执行主键语义。setMatchColumn(String columnIdx)方法的实现应确保当一个CachedRowSet对象将主键列设置为匹配列时,将保留对关键列的约束。- 参数
-
columnName- 一个String对象,给出要设置为匹配列的列的名称 - 异常
-
SQLException- 如果设置了无效的列名称,则列名称为空,或列名称为空字符串 - 另请参见:
-
unsetMatchColumn(int),setMatchColumn(int[])
-
setMatchColumn
void setMatchColumn(String[] columnNames) throws SQLException
将指定列设置为此RowSet对象的匹配列。 一个JoinRowSet对象现在可以根据匹配列添加这个RowSet对象。- 参数
-
columnNames- 一个String对象的数组,给出要设置为匹配列的列的名称 - 异常
-
SQLException- 如果列名无效,列名称为空,或列名为空字符串 - 另请参见:
-
unsetMatchColumn(int),setMatchColumn(int[])
-
getMatchColumnIndexes
int[] getMatchColumnIndexes() throws SQLException使用方法setMatchColumn(int[] columnIdxes)检索为此RowSet对象设置的匹配列的索引。- 结果
-
一个
int数组,用于标识被设置为该RowSet对象的匹配列的列的RowSet - 异常
-
SQLException- 如果没有设置匹配列 - 另请参见:
-
setMatchColumn(int),unsetMatchColumn(int)
-
getMatchColumnNames
String[] getMatchColumnNames() throws SQLException
检索使用方法setMatchColumn(String [] columnNames)为此RowSet对象设置的匹配列的名称。- 结果
-
一组
String对象,给出列为这个RowSet对象的匹配列的列的名称 - 异常
-
SQLException- 如果没有设置匹配列 - 另请参见:
-
setMatchColumn(int),unsetMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(int columnIdx) throws SQLException将指定的列RowSet为此RowSet对象的匹配列。RowSet实现Joinable接口的对象必须确保继续强制执行类键约束,直到在指定列上调用方法CachedRowSet.unsetKeyColumns。- 参数
-
columnIdx- 一个int,其标识要作为匹配列取消设置的列的索引 - 异常
-
SQLException- 如果指定了无效的列索引,或者指定的列未被预先设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(int[] columnIdxes) throws SQLException将指定的列RowSet为此RowSet对象的匹配列。- 参数
-
columnIdxes-的阵列int,标识被取消设置为匹配列的列的索引 - 异常
-
SQLException- 如果指定了无效的列索引,或者指定的列是否以前未设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(String columnName) throws SQLException
将指定的列RowSet为此RowSet对象的匹配列。RowSet实现Joinable接口的对象必须确保继续执行类键约束,直到在指定列上调用方法CachedRowSet.unsetKeyColumns。- 参数
-
columnName- 一个String对象,给出要作为匹配列取消设置的列的名称 - 异常
-
SQLException- 如果指定了无效的列名称,或者指定的列未被预先设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(String[] columnName) throws SQLException
将指定的列RowSet为此RowSet对象的匹配列。- 参数
-
columnName- 一个String对象的数组,给出要作为匹配列取消设置的列的名称 - 异常
-
SQLException- 如果指定了无效的列名称,或者指定的列未被预先设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
-