1,创建的存储过程在数据库里面自己运行,它接受输入参数,和返回值。它有自己语法,如循环分支等。
2,在Java代码里面调用,指定调用存储过程的名称,给他传入参数。
然后执行,取得返回指进行处理。
先来看看在java里面怎么调用,传参,和处理返回值。
假如目前有个存储过程,它有1个输入参数,1个输出参数,para1 varchar(20),para2 varchar(20) output;
假如已经取得驱动连接Connection con = DriverManager.getConnection();
CallableStatement cs = con.prepareCall(String sql);// 该sql就是一个在数据库里面的调用存储过程的语句
/**
{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
{call <procedure-name>[(<arg1>,<arg2>, ...)]} --要调用的SQL格式
sql = "?=call myprodure(?)";
//第一个?是输出参数,第二个是输入参数。
//对于输出如果使用结果参数,则必须将其注册为 OUT 参数
**/
cs.registerOutParameter(1,Types.VARCHAR);//第一个?肯定是返回值,所以编号为1,它的类型根据你设置数据库里参数类型来定义
cs.setString(2,"para1");//给第二个参数指定值。
cs.execute();//执行,这个是PreparedStatement或者是Statement的方法。
String outParameter = cs.getString(1);//取得输出参数的值