JAVA调用MySQL存储过程跟SQL2000一样吗?(高手们帮帮忙吧.跪求了,急用)

时间:2022-12-30 05:57:26
create PROCEDURE maxweeks
(
out num int
)
BEGIN
select  count(*) as times into num from tb_down_client_app_log GROUP BY WEEK(clickdate) order by times DESC LIMIT 1;
END;
这是我的存储过程.与sql2000的好象不一样.实在是做不下去了.

10 个解决方案

#1


出了什么问题

#2


你写的是存储过程,
JAVA如何调用与数据库是无关的,一个样

#3


CallableStatement cstm = cn.prepareCall("{call   maxweeks(?)}"); 
cstm.registerOutParameter(1,java.sql.Types.INTEGER); 
int x = cstm.getInt(1);   
这样的代码有错误!
java.sql.SQLException: No output parameters returned by procedure.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.CallableStatement.getOutputParameters(CallableStatement.java:1430)
at com.mysql.jdbc.CallableStatement.getInt(CallableStatement.java:1247)
at com.cj.Test.main(Test.java:34)
真的不知道错误出在那里了

#4


存储过程中的输出参数的数据类型,是根据申明的数据类型来的.按道理来说java.sql.Types.INTEGER
应该是整型.但是为什么最后还是接受不到.
大侠们,写一个小例子,照顾一下小弟吧

#5


没有返回值 

就不要定义 outParameter

#6


create PROCEDURE maxweeks
(
out num int
)
这里不是返回值吗
我可以在MySQL打印
代码是这样的
call maxweeks(@i);
select @i;
这个应该是返回值吧?

#7


看错了 不好意思

#8


interpb(曾曾胡,深怕情多累美人!!!) 
------------------------------

那为什么,还是不能调用呢?
cstm.registerOutParameter(1,java.sql.Types.INTEGER); //这里的数据类型是数据中的
int x = cstm.getInt(1); //这里也是根据数据库中得到的
但是为什么会报错
java.sql.SQLException: No output parameters returned by procedure.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.CallableStatement.getOutputParameters(CallableStatement.java:1430)
at com.mysql.jdbc.CallableStatement.getInt(CallableStatement.java:1247)
at com.cj.Test.main(Test.java:34)

#9


cstm.execute();

#10


哈哈哈,原来如此.真的不好意思.节贴

#1


出了什么问题

#2


你写的是存储过程,
JAVA如何调用与数据库是无关的,一个样

#3


CallableStatement cstm = cn.prepareCall("{call   maxweeks(?)}"); 
cstm.registerOutParameter(1,java.sql.Types.INTEGER); 
int x = cstm.getInt(1);   
这样的代码有错误!
java.sql.SQLException: No output parameters returned by procedure.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.CallableStatement.getOutputParameters(CallableStatement.java:1430)
at com.mysql.jdbc.CallableStatement.getInt(CallableStatement.java:1247)
at com.cj.Test.main(Test.java:34)
真的不知道错误出在那里了

#4


存储过程中的输出参数的数据类型,是根据申明的数据类型来的.按道理来说java.sql.Types.INTEGER
应该是整型.但是为什么最后还是接受不到.
大侠们,写一个小例子,照顾一下小弟吧

#5


没有返回值 

就不要定义 outParameter

#6


create PROCEDURE maxweeks
(
out num int
)
这里不是返回值吗
我可以在MySQL打印
代码是这样的
call maxweeks(@i);
select @i;
这个应该是返回值吧?

#7


看错了 不好意思

#8


interpb(曾曾胡,深怕情多累美人!!!) 
------------------------------

那为什么,还是不能调用呢?
cstm.registerOutParameter(1,java.sql.Types.INTEGER); //这里的数据类型是数据中的
int x = cstm.getInt(1); //这里也是根据数据库中得到的
但是为什么会报错
java.sql.SQLException: No output parameters returned by procedure.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.CallableStatement.getOutputParameters(CallableStatement.java:1430)
at com.mysql.jdbc.CallableStatement.getInt(CallableStatement.java:1247)
at com.cj.Test.main(Test.java:34)

#9


cstm.execute();

#10


哈哈哈,原来如此.真的不好意思.节贴