zoukankan      html  css  js  c++  java
  • JDBC数据库编程:callableStatement接口

    了解MySQL存储过程建立,

    了解存储过程中参数传递的三种方式

    了解callablestatement调用存储过程操作。

    因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了解,不需要深入。

    现在先建议一个存储过程;

    CREATE PROCEDURE myproc
    (
        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

    IN类型:默认设置,什么都不声明,只是将内容传递过来。

    INOUT类型:表示把值传递到过程中,并且保持过程对值的修改。

    OUT:可以不传递内容,过程对此值的操作可以返回。

    package 类集;
    import java.sql.Connection ;
    import java.sql.DriverManager ;
    import java.sql.SQLException ;
    import java.sql.CallableStatement ;
    import java.sql.Types ;
    public class ProcDemo{
        // 定义MySQL的数据库驱动程序
        public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
        // 定义MySQL数据库的连接地址
        public static final String DBURL = "jdbc:mysql://localhost:3306/sys" ;
        // MySQL数据库的连接用户名
        public static final String DBUSER = "root" ;
        // MySQL数据库的连接密码
        public static final String DBPASS = "aaaaaa" ;
        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) ;  //注册返回值类型,因为第二个和第三个参数分别是INOUT和OUT类型,所以有返回值,要注册类型。
            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() ;            // 数据库关闭
        }
    };
  • 相关阅读:
    删除表数据drop、truncate和delete的用法
    List,DataTable实现行转列的通用方案
    C#正则表达式简单限制输入11位手机号
    Oracle数据库byte存放汉字,9个汉字x3=27个字节
    SQL 语句
    $("p").fadeOut("fast")设置淡出效果
    神奇的 toLocaleString
    C#中精确计时的一点收获
    Web service stop after running serveral hours
    SQL Server中like匹配下划线的方法
  • 原文地址:https://www.cnblogs.com/alsf/p/6736192.html
Copyright © 2011-2022 走看看