CallableStatement对象的创建:con.prepareCall(SQL语句)
CallableStatement对象特点
多使用execute()执行执行SQL的存储过程CallableStatement对象的参数
IN:创建SQL语句时其参数值是未知的。 使用setXXX()方法将值绑定到IN参数。 OUT:由SQL语句返回的参数值。 可以使用getXXX()方法从OUT参数中检索值。 INOUT:提供输入和输出值的参数,使用setXXX()方法绑定变量并使用getXXX()方法检索值。 需要使用registeroutParameter(),声明输出参数类型 ackage cn.woniuxueyuan.mysqldemo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.SQLException; /** * 存储过程调取, * 使用prepareCall获取CallableStatement实例, * registerOutParameter声明注册输入参数的类型 */ public class CallableStatementDemo { public static void CallAbleDemo() { Connection con = msyqlTest.ConDemo(); /* 存储过程执行 */ String sql = "{call pro_test(?,?)}"; /* 常见预编译状态 */ CallableStatement state = null; String ps = null; try { state = con.prepareCall(sql); /* 设置参数 */ state.setString(1, "q"); /* 声明存储过程返回值的参数类型 */ state.registerOutParameter(2, java.sql.Types.VARCHAR); /* 执行,返回boolean,表明是否有返回集,存储过程多实用execute执行 */ state.execute(); /*获取返回值*/ ps = state.getString(2); System.out.println(ps); } catch (SQLException e) { e.printStackTrace(); } finally { /*关闭资源*/ try { state.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } } } }