掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
可以使用 Fetch Size 更改行獲取值來更改每次訪問數(shù)據(jù)庫游標(biāo)時檢索的行數(shù)。

為新邵等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及新邵網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、新邵網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
默認(rèn)情況下,OceanBase Connector/J 運(yùn)行查詢時,默認(rèn)一次從數(shù)據(jù)庫游標(biāo)中檢索 10 行的結(jié)果集。
使用標(biāo)準(zhǔn) JDBC,還可以指定每次查詢數(shù)據(jù)庫往返所獲取的行數(shù),該數(shù)量稱為 Fetch Size。在 OceanBase Connector/J 中,行預(yù)取值為語句對象中的默認(rèn)訪存大小。設(shè)置訪存大小會覆蓋行預(yù)取值設(shè)置,并影響該語句對象的后續(xù)查詢。
Fetch Size 也用于結(jié)果集中。當(dāng)語句對象運(yùn)行查詢時,語句對象的 Fetch Size 將傳遞給查詢的結(jié)果集對象。但是,您也可以在結(jié)果集對象中設(shè)置訪存大小,以覆蓋傳遞給它的語句訪存大小。
注意
生成結(jié)果集后,對語句對象的 Fetch Size 所做的更改對該結(jié)果集不會產(chǎn)生影響。
結(jié)果集的 Fetch Size,無論是顯式設(shè)置的,還是默認(rèn)等于傳遞給它的語句 Fetch Size,都可以確定后續(xù)對該結(jié)果集進(jìn)行數(shù)據(jù)庫訪問時檢索到的行數(shù)。這包括完成原始查詢?nèi)匀恍枰乃行谐?,以及將?shù)據(jù)重新提取到結(jié)果集中的所有行程??梢燥@式或隱式地重新獲取數(shù)據(jù),以更新對回滾敏感或?qū)貪L不敏感/可更新的結(jié)果集。
對所有 Statement、PreparedStatement、CallableStatement 和 ResultSet 對象,可以使用以下方法來設(shè)置和獲取 Fetch Size:
void setFetchSize(int rows) throws SQLException
int getFetchSize() throws SQLException
要設(shè)置查詢的 Fetch Size,請在運(yùn)行查詢之前在語句對象上調(diào)用 setFetchSize。如果將 Fetch Size 設(shè)置為 N,則每次訪問數(shù)據(jù)庫時都會獲取 N 行。
運(yùn)行查詢后,可以在結(jié)果集對象上調(diào)用 setFetchSize 來覆蓋傳遞給它的語句對象訪存大小。這將影響到數(shù)據(jù)庫的后續(xù)行程,為原始查詢獲取更多行,并影響以后的行重取。
標(biāo)準(zhǔn) JDBC 驅(qū)動可以預(yù)先指定用于處理結(jié)果集的方向(稱為提取方向)。結(jié)果集設(shè)置方法如下:
void setFetchDirection(int direction) throws SQLException
int getFetchDirection() throws SQLException
OceanBase Connector/J 僅支持向前的預(yù)設(shè)值,可以通過輸入 ResultSet.FETCH_FORWARD 靜態(tài)常量值來指定該值。
不支持值 ResultSet.FETCH_REVERSE 和 ResultSet.FETCH_UNKNOWN,如果嘗試指定會導(dǎo)致 SQL 警告,并且設(shè)置將被忽略。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流