jdbc调用存储过程为什么语句不能加分号 100
就是调用发送的sql语句字符串的时候()后加了分好就抛异常,不加就可以运行,想问为什么,哪位大神知道告诉小弟一下...
就是调用发送的sql语句字符串的时候()后加了分好就抛异常,不加就可以运行,想问为什么,哪位大神知道告诉小弟一下
展开
2017-08-25
展开全部
jdbc中对于执行存储过程支持是通过CallableStatement接口来实现的,该接口的实现类实例来调用并执行存储过程。“public interface CallableStatementextends PreparedStatement”。Connection类提供了创建CallableStatement对象的方法以调用数据库存储过程。//CallableStatement prepareCall(String sql) throws SQLException。//注意:调用存储过的字符串参数格式为形如:"{call p_Register(?,?,?)}",1、注意大括号,2、注意使用call来调用存储过程,3、存储过程参数使用括号括起来,4、同样支持占位符"?",5、语句后没有分号。
追问
想问为什么没有,但是发送不是存储过程的语句就可以,就是存储过程不行呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
conn.prepareCall("{call sp_get_goods_by_id(?)}");
cs.setObject(1, uid); //uid应该是BigInteger吧,字符串与bigint类型不匹配
cs.setObject(1, uid); //uid应该是BigInteger吧,字符串与bigint类型不匹配
追问
不是可变的,就是直接发送了一条静态的语句过去,可是不是存储过程的为什么可以加,到存储过程就不可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询