|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface Predicate
為所有 FilteredRowSet
物件提供框架以描述其過濾器的標準介面。
Predicate
介面是一個標準介面,應用程序可以實作它來定義希望應用於 FilteredRowSet
物件的過濾器。FilteredRowSet
物件使用此介面的實作並實施在 evaluate
方法的實作中定義的各種約束。FilteredRowSet
物件以雙向方式實施過濾器約束:它只輸出過濾器的約束中存在的行;反之,也只插入、修改或更新過濾器的約束中存在的行。
FilteredRowSet
提供 predicate,則必須實作此介面。此時,JDBC RowSet Implementations (JSR-114) 不指定任何標準過濾器定義。通過為要使用 FilteredRowSet
介面的參考實作和供應商實作來定義和部署的過濾器範圍指定一個標準的方法與機制,此介面允許形成一個應用程序驅動的 Predicate
的靈活實作。
範例實作如下所示:
public class Range implements Predicate {
private Object lo[];
private Object hi[];
private int idx[];
public Range(Object[] lo, Object[] hi, int[] idx) {
this.lo = lo;
this.hi = hi;
this.idx = idx;
}
public boolean evaluate(RowSet rs) {
CachedRowSet crs = (CachedRowSet)rs;
boolean bool1,bool2;
// Check the present row determine if it lies
// within the filtering criteria.
for (int i = 0; i < idx.length; i++) {
if ((rs.getObject(idx[i]) >= lo[i]) &&
(rs.getObject(idx[i]) >= hi[i]) {
bool1 = true; // within filter constraints
} else {
bool2 = true; // outside of filter constraints
}
}
if (bool2) {
return false;
} else {
return true;
}
}
上述範例實作一個簡單的範圍 predicate。注意,實作應該(但不是必須)提供基於 String
和整數索引的建構子,供同時使用兩種列標識約定的 JDBC RowSet Implementation 應用程序使用。
方法摘要 | |
---|---|
boolean |
evaluate(Object value,
int column)
FilteredRowSet 物件調用此方法來檢查值是否位於使用 setFilter() 方法設置的過濾標準(或標準,如果存在多個約束)中。 |
boolean |
evaluate(Object value,
String columnName)
FilteredRowSet 物件調用此方法來檢查值是否位於使用 setFilter 方法設置的過濾標準中。 |
boolean |
evaluate(RowSet rs)
此方法通常稱為 FilteredRowSet 物件內部方法(非公共),它控制 RowSet 物件的指針從一行移動到下一行。 |
方法詳細資訊 |
---|
boolean evaluate(RowSet rs)
FilteredRowSet
物件內部方法(非公共),它控制 RowSet
物件的指針從一行移動到下一行。此外,如果此內部方法將指針移動到一個已刪除的行上,則其將繼續移動指針,直到找到一個有效行為止。
true
;否則返回 false
boolean evaluate(Object value, int column) throws SQLException
FilteredRowSet
物件調用此方法來檢查值是否位於使用 setFilter()
方法設置的過濾標準(或標準,如果存在多個約束)中。
向 FilteredRowSet
實例插入新行時,FilteredRowSet
物件將在內部使用此方法。
value
- 一個 Object
值,需要檢查其是否可以為 FilterRowSet
物件的一部分。column
- 一個 int
物件,必須與此 RowSet
物件中列的 SQL 索引相比對。初始化 Predicate
時,此值必須已作為要過濾的列之一傳遞給 Predicate
true
;否則返回 false
SQLException
- 如果列不是過濾標準的一部分boolean evaluate(Object value, String columnName) throws SQLException
FilteredRowSet
物件調用此方法來檢查值是否位於使用 setFilter 方法設置的過濾標準中。
向 FilteredRowSet
實例插入新行時,FilteredRowSet
物件將在內部使用此方法。
value
- 一個 Object
值,需要檢查其是否可以為 FilterRowSet
物件的一部分。columnName
- 一個 String
物件,必須與此 RowSet
中列的 SQL 名稱相比對(忽略大小寫)。初始化 Predicate
時,此值必須作為要過濾的列之一傳遞給 Predicate
。
true
;否則,返回 false
。
SQLException
- 如果列不是過濾標準的一部分
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。