1.概述
CallableStatement用来运行SQL存储过程。存储过程是数据库中已经存在的SQL语句,它通过名字调用。CallableStatement是PreparedStatement的子类。
CallableStatemnet中定义的方法用于处理OUT参数或INOUT参数的输出部分,
2.创建CallableStatement对象
CallableStatement对象是用Connection.prepareCall()创建的。
CallableStatement cstmt = con.prepareCall(call p1(?, ?));
3.IN和OUT参数
将IN参数传给CallableStatement对象是通过setXXX方法完成的。所传入参数的类型决定了所用的setXXX方法(例如,用setString来传入String值等)。
如果存储过程返回OUT参数,则在执行CallableStatement对象之前必须先注册每个OUT参数的JDBC类型。
注册JDBC类型用registerOutParameter方法来完成的。语句执行完后,CallableStatemnet的getXXX方法将取回参数值。其中XXX是为各参数所注册的JDBC类型所对应的Java类型。
4.INOUT参数
如果参数为既接受输入又接受输出的参数类型(INOUT参数),那么除了调用registerOutParameter方法外,还要调用对应的setXXX方法。
setXXX方法将参数值设置为输入参数,而registerOutParameter方法将它的JDBC类型注册为输出参数。如果要检索输出值,就要用对应的getXXX方法。