[求助]JAVA调用MySQL存储过程跟SQL2000一样吗?_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2467 | 回复: 0   主题: [求助]JAVA调用MySQL存储过程跟SQL2000一样吗?        下一篇 
曹先丰
注册用户
等级:中士
经验:208
发帖:72
精华:0
注册:2012-1-9
状态:离线
发送短消息息给曹先丰 加好友    发送短消息息给曹先丰 发消息
发表于: IP:您无权察看 2014-12-10 9:58:27 | [全部帖] [楼主帖] 楼主

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

所属分类:Java J2SE / 基础类

----------------------------------------------------------------------
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的好象不一样.实在是做不下去了.
----------------------------------------------------------------------
出了什么问题
--------------------------------------------------------
你写的是存储过程,
JAVA如何调用与数据库是无关的,一个样 

 --------------------------------------------------------
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)


真的不知道错误出在那里了

--------------------------------------------------------

存储过程中的输出参数的数据类型,是根据申明的数据类型来的.按道理来说java.sql.Types.INTEGER

应该是整型.但是为什么最后还是接受不到.

大侠们,写一个小例子,照顾一下小弟吧

--------------------------------------------------------

没有返回值 

就不要定义 outParameter

--------------------------------------------------------
create PROCEDURE maxweeks
(
out num int
)


这里不是返回值吗

我可以在MySQL打印

代码是这样的

call maxweeks(@i);
select @i;


这个应该是返回值吧?

--------------------------------------------------------

看错了 不好意思

--------------------------------------------------------
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)
-------------------------------------------------------
cstm.execute();
--------------------------------------------------------


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论