我在MySql中有一个存储过程的示例,我想用JDBC调用它。问题是我得到以下错误:
java.sql.SQLException: Parameter number 1 is not an OUT parameter
存储过程的定义是:
delimiter \\
create procedure get_average (
out a decimal(8,2)
)
begin
select avg(grade) into a from students;
end \\
如您所见,我有一个学生表,并计算平均值。当我在MySql中测试时,它工作正常。
Java代码:
CallableStatement cstmt = con.prepareCall("call get_average(?)");
cstmt.registerOutParameter(1, java.sql.Types.DOUBLE);
rs = cstmt.executeQuery();
double average = cstmt.getDouble(1);
con是打开的连接。我究竟做错了什么?
最佳答案
尝试:
CallableStatement cstmt = con.prepareCall("{call get_average(?)}");