CallableStatement 用來調用存儲過程(瞭解)
在 JDBC 中調用已儲存過程的語法如下所示。注意,方括號表示其間的內容是可選項;方
括號本身並不是語法的組成部份。
{call 過程名[(?, ?, ...)]}
返回結果參數的過程的語法爲:
{? = call 過程名[(?, ?, ...)]}
不帶參數的已儲存過程的語法類似:
{call 過程名}
示例代碼:
String procedure="{call Operator_login(?,?,?)}";
//註冊存儲過程
在 JDBC 中調用已儲存過程的語法如下所示。注意,方括號表示其間的內容是可選項;方
括號本身並不是語法的組成部份。
{call 過程名[(?, ?, ...)]}
返回結果參數的過程的語法爲:
{? = call 過程名[(?, ?, ...)]}
不帶參數的已儲存過程的語法類似:
{call 過程名}
示例代碼:
String procedure="{call Operator_login(?,?,?)}";
//註冊存儲過程
CallableStatement callStmt=conn.prepareCall(procedure);
//註冊存儲過程輸出參數的類型
callStmt.registerOutParameter(3,java.sql.Types.INTEGER);
//提供輸入參數的值
callStmt.setString(1,this.operatorID);
callStmt.setString(2,this.password);
//執行存儲過程
callStmt.execute();
//返回輸出參數
login_state=callStmt.getInt(3);
CallableStatement cs = conn.prepareCall("{call ec_get_cust_terms(?)}");
cs.setInt(1, custNo);
rs = cs.executeQuery();
//註冊存儲過程輸出參數的類型
callStmt.registerOutParameter(3,java.sql.Types.INTEGER);
//提供輸入參數的值
callStmt.setString(1,this.operatorID);
callStmt.setString(2,this.password);
//執行存儲過程
callStmt.execute();
//返回輸出參數
login_state=callStmt.getInt(3);
CallableStatement cs = conn.prepareCall("{call ec_get_cust_terms(?)}");
cs.setInt(1, custNo);
rs = cs.executeQuery();