如题,在JDBC当中创建一个PreparedStatement对象时,用prepareCall()方法和prepareStatement()方法有什么区别?

解决方案 »

  1.   

    prepareCall用于执行存储过程,prepareStatement执行SQL语句。
      

  2.   

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

  3.   


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

  4.   


    你的意思就是prepareCall可以执行SQL语句了?
      

  5.   

    public interface CallableStatement extends PreparedStatement
      

  6.   

    没用过prepareCall,但是在JAVA中调用存储过程,
    通常是用CallableStatement cs  = connection.prepareCall(sql); 
      

  7.   

    prepareCall 返回CallableStatement,CallableStatement继承自PreparedStatement.
    也就是说:CallableStatement可以执行存储过程也可以执行sql,但是PreparedStatement只能执行sql。
      

  8.   

     conn = session.connection();
            proc = conn.prepareCall("{ call stat_main(?,?,?,?,?,?,?) }");
    prepareCall这里面是要执行的存储过程,而prepareStatement这里面是要执行的SQL语句。一般来说两者是不通用的。但是如果程序要是不报错的话也是可以的
      

  9.   

    PreparedStatement可以执行存储过程,不相信的可以自己试试......我也不知道为什么!
      

  10.   

    今天第一次用到prepareCall 学习