可調(diào)用語句使" />
時間:2022-12-31 04:30:02 | 來源:信息時代
時間:2022-12-31 04:30:02 來源:信息時代
可調(diào)用語句 : JDBC規(guī)范中訪問存儲過程的一個接口類,也是一個SQL語句的容器。作為Java.sql.Statement類的一個子類,用于Java應(yīng)用程序中調(diào)用數(shù)據(jù)庫存儲過程、接收返回結(jié)果。
可調(diào)用語句使用標(biāo)準(zhǔn)的call命令執(zhí)行存儲過程。call調(diào)用遵循X/Open規(guī)范,使用兩種相似的轉(zhuǎn)義序列,即: 有執(zhí)行結(jié)果參數(shù)和無結(jié)果參數(shù)方式。結(jié)果參數(shù)是一種輸出參數(shù),記錄存儲過程執(zhí)行的返回值。兩種方式都可以指定一定數(shù)目的實(shí)參,個數(shù)取決于存儲過程定義中的參數(shù)數(shù)目。參數(shù)可以是輸入?yún)?shù)、輸出參數(shù)或輸入/輸出參數(shù),而問號則作為實(shí)參占位符,也即通常的位置參數(shù)。
可調(diào)用語句的執(zhí)行命令有下面三種基本調(diào)用形式:
(1)有過程參數(shù),但沒有或不接收返回值:
{call<過程名>(?,?,...)}
(2)有過程參數(shù),接收返回值:
{?=call<過程名>(?,?,...)}
(3)無過程參數(shù),也不接收返回值:
{call<過程名>}
如果過程定義沒有參數(shù)則參數(shù)列表為空。為提高應(yīng)用程序的可適用性和可移植性,JDBC提供了檢索數(shù)據(jù)庫管理系統(tǒng)是否支持存儲過程的方法。一般說來,創(chuàng)建可調(diào)用語句對象的用戶知道所選系統(tǒng)是否支持存儲過程以及有哪些存儲過程,但DatabaseMeta的多個方法都可用于檢索這些信息,如supportsStoredProcedures可以判斷數(shù)據(jù)庫系統(tǒng)是否支持某個過程,而getProcedures則返回某個可用存儲過程的描述信息。
可調(diào)用語句是語句類Statment和準(zhǔn)備語句類PreparedStatement的派生類,能夠處理各種類型的過程參數(shù),如注冊輸出參數(shù)的JDBC數(shù)據(jù)類型、獲取參數(shù)值、判斷空值(null)等。
使用可調(diào)用語句接口的一般方法是: 首先定義call命令串,也可以不定義; 建立一個可調(diào)用語句對象并用命令串初始化對象;其次設(shè)定輸入?yún)?shù)和注冊輸出參數(shù),用setXXX()方法初始化變量,而registerOutParameter()方法將存儲過程的輸出變量綁定到本地緩沖區(qū);最后用execute()方法執(zhí)行它所指定的存儲過程。根據(jù)存儲過程返回結(jié)果的不同,執(zhí)行可調(diào)用語句有三種不同的方法,即: 如果返回結(jié)果集(ResultSet)對象,使用executeQuery方法;如果返回過程影響的行數(shù),則使用executeUpdate方法; 如果返回多結(jié)果集或未知類型,則用execute方法。
可調(diào)用語句對象既能夠充分利用準(zhǔn)備語句的可重用優(yōu)點(diǎn),同時有利于降低通信代價,充分發(fā)揮數(shù)據(jù)庫服務(wù)器的處理能力。它也是Java程序通過JDBC執(zhí)行存儲過程的標(biāo)準(zhǔn)方法。
關(guān)鍵詞:數(shù)據(jù),調(diào)用
客戶&案例
關(guān)于我們
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。