用java调用存储过程后数据库里可以查到记录,但是execute返回的确实false而且返回值的都是-1?
展开全部
在调用 prepareCall方法 调用语句最前面加 SET NOCOUNT ON
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样的操作是不是数据已经添加成功了,但是excute却是false,那么我想知道的是excute却是false,会给你的程序带来什么问题?
更多追问追答
追问
执行成功后,怎么会返回false呢?
追答
有两个部分你需要修改:
1.存储过程需要定义一个返回参数:
create procedure sp_saveColumnturn(@args1 varchar(2000),@result int out )
2.java在调用存储过程中需要返回值时需要注册返回值类型:registerOutParameter
CallableStatement cstmt = conn.prepareCall("{ call sp_saveColumnturn(?,?) }");
cstmt.setString(1, "arg1");
cstmt.registerOutParameter(2,Types.INTEGER);
cstmt.execute();
int result = cstmt.getInt(2);
System.out.println(result);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询