CallableStatement

作者: 阿拉丁家的神灯 | 来源:发表于2018-04-10 09:34 被阅读0次

    在近年JDBC中,存储过程越来越边缘化,用的也好。即使在数据库中,存储过程也是很偏门的,仅作为了解。
    下面是关于CallbaleStatement的源代码,为了展示方便,所有异常抛出而不处理

    public class ProcDemo{
        // 定义MySQL的数据库驱动程序
        public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
        // 定义MySQL数据库的连接地址
        public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
        // MySQL数据库的连接用户名
        public static final String DBUSER = "root" ;
        // MySQL数据库的连接密码
        public static final String DBPASS = "mysqladmin" ;
        public static void main(String args[]) throws Exception{    // 所有异常抛出
            Connection conn = null ;        // 数据库连接
            CallableStatement cstmt = null ;        // 数据库操作
            String sql = "{CALL myproc(?,?,?)}" ;   // 调用过程
            Class.forName(DBDRIVER) ;   // 加载驱动程序
            conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
            cstmt = conn.prepareCall(sql) ;
            cstmt.setInt(1,70) ;    // 设置第一个参数是70
            cstmt.setInt(2,80) ;    // 设置第二个参数是80
            cstmt.registerOutParameter(2,Types.INTEGER) ;
            cstmt.registerOutParameter(3,Types.INTEGER) ;
            cstmt.execute() ;       // 执行过程
            System.out.println("INOUT的返回值:" + cstmt.getInt(2)) ;
            System.out.println("OUT的返回值:" + cstmt.getInt(3)) ;
            cstmt.close() ;
            conn.close() ;          // 数据库关闭
        }
    }
    

    数据库的mysql存储过程的建立代码一并奉上。

    CREATE PROCEDURE mypro(in p1 INT,INOUT p2 INT,OUT p3 INT)
    BEGIN
    SELECT p1,p2,p3;    -- 输出p1,p2,p3的内容
    SET p1 = 10;
    SET p2 = 20;
    SET p3 = 30;
    
    END
    
    

    相关文章

      网友评论

        本文标题:CallableStatement

        本文链接:https://www.haomeiwen.com/subject/ebkghftx.html