mysql里创建了一个带OUT类型参数的存储过程。
create procedure test(in a varchar(20),out b int) select a;JAVA里写:
...
rs=st.executeQuery("use db_test;");
CallableStatement cs=con.prepareCall("call test(?,?);");
cs.setString(1,"yusiyu");
cs.registerOutParameter(2,java.sql.Types.INTEGER);
cs.execute();执行后页面提示英文错位,:Parameter number 2 is not an OUT parameter
大概是说2号参数不是OUT类型?
我存储过程写错了吗?
create procedure test(in a varchar(20),out b int) select a;JAVA里写:
...
rs=st.executeQuery("use db_test;");
CallableStatement cs=con.prepareCall("call test(?,?);");
cs.setString(1,"yusiyu");
cs.registerOutParameter(2,java.sql.Types.INTEGER);
cs.execute();执行后页面提示英文错位,:Parameter number 2 is not an OUT parameter
大概是说2号参数不是OUT类型?
我存储过程写错了吗?
解决方案 »
- javamail客户端发送文件的问题
- 使用JNDI能访问服务器的那些资源?
- jsp更改区域语言的问题
- 在jsf中的t:dataTable能不能邦绑定数组
- hibernate3.2如何映射MYSQL数据库中的longtext类型?
- utf-8乱码处理!!
- 关于socket的问题,希望各位指点
- jsp mysql 中文乱码问题
- 请问我用jsp做了一个下载文件程序,为什么当文件名称是.tmp或者不是常见类型的后缀名,就会自动下载完给我加了.htm?为什么?
- 关于 Servlet 中的一些简单问题请大家帮忙,谢谢大家了
- strut2 动态加载radio 默认选中?
- 如何使用poi在excel中实现两个相互关联的下拉框?
MySQL 对应 java.sql.Types
bigint bigint
tinyblob binary
bit bit
enum,set,char char
date,year date
decimal,numeric decimal
double,real double
mediumint,int integer
blob,mediumblob blob
在存储过程里需要指定返回b的值!
mysql> create procedure helloworld(
-> in vusername varchar(10),
-> out voutvalue varchar(10))
-> begin
-> select concat('hello',vusername);
-> set voutvalue='A';
-> end//java:
st=con.createStatement();
rs=st.executeQuery("use db_test;");
CallableStatement cs=con.prepareCall("{call helloworld(?,?)}");
cs.setString(1,"hello");
cs.registerOutParameter(2,Types.VARCHAR);
cs.execute();
浏览器还是提示错误:Parameter number 2 is not an OUT parameter