jdbc调用存储过程为什么语句不能加分号 100

就是调用发送的sql语句字符串的时候()后加了分好就抛异常,不加就可以运行,想问为什么,哪位大神知道告诉小弟一下... 就是调用发送的sql语句字符串的时候()后加了分好就抛异常,不加就可以运行,想问为什么,哪位大神知道告诉小弟一下 展开
 我来答
雨神Chris呀
2018-10-26
知道答主
回答量:2
采纳率:0%
帮助的人:1519
展开全部
如果你在程序里面写sql,就不要加分号,在程序里面编译器会把分号当做sql本身的一部分,所以会报错 如果是在查询工具里面(比如plsql),这个时候可以加上分号,在工具里面分号是个分隔符,看到分号就标志着本条sql语句结束了; 当然不加也可以,在工具里面看不到分号就认为本条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、语句后没有分号。
追问
想问为什么没有,但是发送不是存储过程的语句就可以,就是存储过程不行呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qh...t@163.com
2017-08-25 · TA获得超过193个赞
知道答主
回答量:545
采纳率:22%
帮助的人:123万
展开全部
conn.prepareCall("{call sp_get_goods_by_id(?)}");
cs.setObject(1, uid); //uid应该是BigInteger吧,字符串与bigint类型不匹配
追问
不是可变的,就是直接发送了一条静态的语句过去,可是不是存储过程的为什么可以加,到存储过程就不可以了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式