-
- All Known Subinterfaces:
-
CachedRowSet,FilteredRowSet,JdbcRowSet,JoinRowSet,WebRowSet
public interface Joinable1.0背景
Joinable接口提供了获取和设置匹配列的方法,这是形成通过将RowSet对象添加到JoinRowSet对象而形成的SQLJOIN的基础。任何标准
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是CachedRowSet对象,已实现Joinable接口。 在以下示例中, 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
-
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 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对象的匹配列。voidunsetMatchColumn(int[] columnIdxes)将指定列取消设置为此RowSet对象的匹配列。voidunsetMatchColumn(String columnName)取消将指定列设置为此RowSet对象的匹配列。voidunsetMatchColumn(String[] columnName)取消将指定列设置为此RowSet对象的匹配列。
-
-
-
方法详细信息
-
setMatchColumn
void setMatchColumn(int columnIdx) throws SQLException将指定列设置为此RowSet对象的匹配列。JoinRowSet对象现在可以根据匹配列添加此RowSet对象。子接口(如
CachedRowSet接口定义方法CachedRowSet.setKeyColumns,该方法允许在特定列上强制执行主键语义。 当CachedRowSet对象将主键列设置为匹配列时,setMatchColumn(int columnIdx)方法的实现应确保维护对键列的约束。- 参数
-
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,其允许在特定列上实施主键语义。 当CachedRowSet对象将主键列设置为匹配列时,setMatchColumn(String columnIdx)方法的实现应确保维护对键列的约束。- 参数
-
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对象的匹配列。实现
Joinable接口的RowSet对象必须确保继续强制执行类似键的约束,直到在指定列上调用方法CachedRowSet.unsetKeyColumns为止。- 参数
-
columnIdx- 一个int,用于标识要作为匹配列取消设置的列的索引 - 异常
-
SQLException- 如果指定了无效的列索引,或者之前未将指定的列设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(int[] columnIdxes) throws SQLException取消将指定列设置为此RowSet对象的匹配列。- 参数
-
columnIdxes-的阵列int,它标识被取消设置为匹配列的列的索引 - 异常
-
SQLException- 如果指定了无效的列索引,或者之前未将指定的列设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(String columnName) throws SQLException
取消将指定列设置为此RowSet对象的匹配列。实现
Joinable接口的RowSet对象必须确保继续强制执行类似键的约束,直到在指定列上调用方法CachedRowSet.unsetKeyColumns为止。- 参数
-
columnName- 一个String对象,给出要作为匹配列取消设置的列的名称 - 异常
-
SQLException- 如果指定了无效的列名,或者之前未将指定的列设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
unsetMatchColumn
void unsetMatchColumn(String[] columnName) throws SQLException
取消将指定列设置为此RowSet对象的匹配列。- 参数
-
columnName- 一个String对象的数组,给出要作为匹配列取消设置的列的名称 - 异常
-
SQLException- 如果指定了无效的列名,或者之前未将指定的列设置为匹配列 - 另请参见:
-
setMatchColumn(int)
-
-