调用类Connection中的方法prepareCall创建一个CallableStatement对象:
CallableStatement csm=con.PrepareCall("{call test(?,?)}");
CallableStatement接口继承了PreparedStatement接口中的setXXX方法。对IN参数进行赋值。对于OUT参数CallableStatement提供方法进行类型注册和检索
类型注册:
方法一:
registerOutParamenter(int parameterIndex,int sqlType);//除了对Numeric和Decimal两种类型外的其他类型均适用
方法二:
registerOutParameter(int parameterIndex.,int sqlType,int scale);//scale是一个大于等于零的整数,这是一个精度值,代表了所注册的类型中小数点右边允许的位数。
CallableStatement csm=conn.prepareCall("{call test(?,?)}");
csm.registerOutParameter(2,java.sql.Types.VARCHAR);//对test 这一存储过程中的第二个参数进行输出类型注册,注册的SQL类型为java.sql.Type.VARCHAR
CallableStatement一般用于执行存储过程,所以执行结果可能不同(可能为多个ResultSet或多次修改记录或者两者都有)所以对CallableStatement一般调用方法execute()执行。
存储过程sp_count:
CREATE PROCEDURE sp_c