日期:2014-05-16  浏览次数:20750 次

java调用mysql存储过程没有成功
存储过程如下.
DELIMITER   $$

DROP   PROCEDURE   IF   EXISTS   `tennis`.`sp_k`$$

CREATE   DEFINER=`root`@`localhost`   PROCEDURE   `sp_k`(in   i_f1   integer)
begin
        insert   into   tz   values(i_f1);
end$$

DELIMITER   ;

java代码如下.
                Class.forName( "com.mysql.jdbc.Driver ").newInstance();
                String   conUrl= "jdbc:mysql://localhost:3306/tennis ";
                Connection   con=DriverManager.getConnection(conUrl, "root ", "admin ");
                CallableStatement   cstmt=con.prepareCall( "{call   sp_k(?)} ");
                cstmt.setInt( "i_f1 ",333);
                boolean   hadResult=cstmt.execute();
                if(hadResult){
                        System.out.println( "aa ");
                }
                cstmt.close();
                con.close();

程序没有出现什么异常错误..不过数据库里又没有添加到数据...不知道是什么原因.

------解决方案--------------------
当前的用户是否具有存储过程的CREATE 权限?