prepareCall 和 prepareStatement 有什么区别?

ivykid2002 2010-01-05 07:59:15
如题,在JDBC当中创建一个PreparedStatement对象时,

用prepareCall()方法和prepareStatement()方法有什么区别?
...全文
2012 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
my eyes 2011-03-15
  • 打赏
  • 举报
回复
今天第一次用到prepareCall 学习
hanvslin 2011-01-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 crazylaa 的回复:]
prepareCall 返回CallableStatement,CallableStatement继承自PreparedStatement.
也就是说:CallableStatement可以执行存储过程也可以执行sql,但是PreparedStatement只能执行sql。
[/Quote]
PreparedStatement可以执行存储过程,不相信的可以自己试试......我也不知道为什么!
yinxiaoqi 2011-01-12
  • 打赏
  • 举报
回复
学习啦,
程序小海 2010-10-18
  • 打赏
  • 举报
回复
学习!
qq595710006 2010-07-06
  • 打赏
  • 举报
回复
.
....
qsw920 2010-07-06
  • 打赏
  • 举报
回复
conn = session.connection();
proc = conn.prepareCall("{ call stat_main(?,?,?,?,?,?,?) }");
prepareCall这里面是要执行的存储过程,而prepareStatement这里面是要执行的SQL语句。一般来说两者是不通用的。但是如果程序要是不报错的话也是可以的
SambaGao 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoupuyue 的回复:]
prepareCall用于执行存储过程,prepareStatement执行SQL语句。
[/Quote]..
crazylaa 2010-01-05
  • 打赏
  • 举报
回复
prepareCall 返回CallableStatement,CallableStatement继承自PreparedStatement.
也就是说:CallableStatement可以执行存储过程也可以执行sql,但是PreparedStatement只能执行sql。
laker_914 2010-01-05
  • 打赏
  • 举报
回复
没用过prepareCall,但是在JAVA中调用存储过程,
通常是用CallableStatement cs = connection.prepareCall(sql);

AceOfAces 2010-01-05
  • 打赏
  • 举报
回复
public interface CallableStatement extends PreparedStatement
ivykid2002 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q331464542 的回复:]
引用 2 楼 ivykid2002 的回复:
引用 1 楼 zhoupuyue 的回复:
prepareCall用于执行存储过程,prepareStatement执行SQL语句。

那我再写JDBC时用prepareCall也执行了SQL语句啊?难道prepareCall对于SQL语句和存储过程通用?


对啊.但是prepareStatement就不能执行存储过程啊
 
  prepareCall是专门用来执行存储过程的啊. prepareCall返回的是一个CallableStatement
  preparedStatement 返回的是一个PreparedStatement
[/Quote]

你的意思就是prepareCall可以执行SQL语句了?
跟着Mic学架构 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ivykid2002 的回复:]
引用 1 楼 zhoupuyue 的回复:
prepareCall用于执行存储过程,prepareStatement执行SQL语句。

那我再写JDBC时用prepareCall也执行了SQL语句啊?难道prepareCall对于SQL语句和存储过程通用?
[/Quote]

对啊.但是prepareStatement就不能执行存储过程啊

prepareCall是专门用来执行存储过程的啊. prepareCall返回的是一个CallableStatement
preparedStatement 返回的是一个PreparedStatement
水中影子 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoupuyue 的回复:]
prepareCall用于执行存储过程,prepareStatement执行SQL语句。
[/Quote]

UP

详细具体,没研究过
wenjjing2lianee 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ivykid2002 的回复:]
引用 1 楼 zhoupuyue 的回复:
prepareCall用于执行存储过程,prepareStatement执行SQL语句。

那我再写JDBC时用prepareCall也执行了SQL语句啊?难道prepareCall对于SQL语句和存储过程通用?
[/Quote]

也不是很了解,等高手...
ivykid2002 2010-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zhoupuyue 的回复:]
prepareCall用于执行存储过程,prepareStatement执行SQL语句。
[/Quote]
那我再写JDBC时用prepareCall也执行了SQL语句啊?难道prepareCall对于SQL语句和存储过程通用?
阿_布 2010-01-05
  • 打赏
  • 举报
回复
prepareCall用于执行存储过程,prepareStatement执行SQL语句。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧