说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

jsp调用存储过程问一个小而我不明白的问题!见貼

编辑:说三道四文库 发布时间:2018-07-17 12:24
HTML文档下载 WORD文档下载 PDF文档下载
我要做jsp调用存储过程 这个存储过程中in       out 代表什么意思?谢谢解答
存储过程声明如下:
CREATE PROCEDURE aa(
        in id varchar(8),
        in nd varchar(16),
out Cntr integer,
out NoArtl integer)
    LANGUAGE SQL
in是传递进去的参数
out是查询后输出的结果变量
接着再问一问题:
out是查询后输出的结果变量
那在java中调用完后  out NoArtl integer 
NoArtl变量是否还要指定一下呢?
int a = NoArtl 呢?

什么意思?要得到输出参数的值?
CallableStatement cstmt=conn.prepareCall("{call sp2(?,?,?,?)}");
cstmt.registerOutParameter(4,java.sql.Types.INTEGER);//设置返回值

//执行
.............
..........
System.out.println(cstmt.getInt(4));//输出参数值
cstmt.registerOutParameter(4,java.sql.Types.INTEGER
这个参数的地方要选择4,
cstmt.registerOutParameter(4,java.sql.Types.INTEGER
这个参数的地方为什么要选择4,
刚才写错了

存储过程声明如下:
CREATE PROCEDURE aa(
        in id varchar(8),
        in nd varchar(16),
out Cntr integer,
out NoArtl integer)
    LANGUAGE SQL
begin
         declare intRtnVal integer;
........
         return intRtnVal;
END P1
我该怎样返回我的intRtnVal 值!
如果有返回值要输出

CallableStatement cstmt=conn.prepareCall("{?=call aa(?,?,?,?)}");
cstmt.registerOutParameter(1,java.sql.Types.INTEGER);//设置返回值
....
....
....
cstmt.registerOutParameter(5,java.sql.Types.INTEGER);//设置输出参数,这里为什么是5?
//因为仔细看看便知道了,是第五个参数(数数一共5个参数,(包括返回参数))
...........
...........//执行的语句不写了
System.out.println(cstmt.getInt(4));//输出参数值
System.out.println(cstmt.getInt(1));//返回参数值




备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘