首页 > 数据库技术 > 详细

jdbc调用存储过程和函数

时间:2016-08-14 14:31:49      阅读:314      评论:0      收藏:0      [点我收藏+]

1.调用存储过程

public class CallOracleProc {
    public static void main(String[] args) throws Exception{
        String sql = "{call get_rax(?,?)}";
        Connection conn = JdbcUtil.getConnection();
        CallableStatement cstmt = conn.prepareCall(sql);
        //为第一个?号设置值,从1开始
        cstmt.setInt(1,7000);
        //为第二个?注册输出类型
        cstmt.registerOutParameter(2,Types.INTEGER);
        //执行调用过程
        cstmt.execute();
        //接收过程的返回值,即第二个?号
        int rax = cstmt.getInt(2);
        //显示
        System.out.println("7000元需要上交"+rax+"元税收");
        cstmt.close();
        conn.close();
    }
}

2.调用函数

public class CallOracleFunc {
    public static void main(String[] args) throws Exception{
        String sql = "{ ? = call findEmpNameAndJobAndSal(?,?,?) }";
        Connection conn = JdbcUtil.getConnection();
        CallableStatement cstmt = conn.prepareCall(sql);
        
        //为第一个?注册输出类型
        cstmt.registerOutParameter(1,Types.VARCHAR);
        //为第二个?注入值
        cstmt.setInt(2,7788);
        //为第三个?注册输出类型
        cstmt.registerOutParameter(3,Types.VARCHAR);
        //为第四个?注册输出类型
        cstmt.registerOutParameter(4,Types.INTEGER);
        //执行函数调用
        cstmt.execute();
        //分别获取1,3,4占位符的值
        String ename = cstmt.getString(1);
        String job = cstmt.getString(3);
        int sal = cstmt.getInt(4);
        //显示
        System.out.println("7788--"+ename+"--"+job+"--"+sal);
        cstmt.close();
        conn.close();
    }
}

 

jdbc调用存储过程和函数

原文:http://www.cnblogs.com/juaner767/p/5770141.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!