CallableStatement接口用于执行SQL存储过程。CallableStatement接口从PrepareStatement接口继承而来,我们可以通过调用Connection对象的prepareCall方法来得到CallableStatement对象。在执行存储过程之前,凡是存储过程中类型为OUT的参数必须被注册,可以通过CallableStatement对象的registerOutParameter方法来完成。
例如:
CallableStatement cs = conn.prepareCall("call count(?,?)");
cs.registerOutParameter(2,java.sql.Types.INTEGER);
cs.setInt(1,456);
cs.execute();
int result = cs.getInt(2);
第一个参数是IN类型,第二参数是OUT类型
CallableStatement对象也可以执行函数
CallableStatement cs = conn.prepareCall("? = call getResult(?)");
cs.registerOutParameter(1,java.sql.Types.INTEGER);
cs.setInt(2,456);
cs.execute();
int result = cs.getInt(2);
函数的参数总是N类型,如果要接收函数的返回值,需要使用“?=”的语法形式并调用registerOutParameter方法注册函数的返回值。