• 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() ;            // 数据库关闭
        }
    };
  • 相关阅读:
    SSM框架整合(Spring+SrpingMVC+Mybatis) 简单案例
    SpringDataRedis操作Redis简单案例
    SpringMVC总结四:拦截器简单介绍
    Configure a bridge interface over a VLAN tagged bonded interface
    Create a bridge using a tagged vlan (8021.q) interface
    Configure a VLAN (on top of a bond) with NetworkManager (nmcli) in RHEL7
    Configure bridge on a team interface using NetworkManager in RHEL 7
    Configure a bridged network interface for KVM using RHEL 5.4 or later?
    程序员的成长阶梯和级别定义
    <程序员从入门到精通> -- How
  • 原文地址:https://www.cnblogs.com/alsf/p/6736192.html
Copyright © 2020-2023  润新知