JDBC调用子程序——函数及过程
例:使用JDBC调用我的前一篇文章中包pg_demo1下面的pro_add过程。
代码及执行结果如下:
JDBC调用PLSQL包中的子程序
JDBC获取数据库连接的操作不在此阐述,获取连接后通过prepareCall(String sql)获得CallableStatement。这个Statement是用来调用数据库子程序的,其中参数sql的语法是{call 包名.子程序(参数列表)}或者{?=call 包名.子程序(参数列表)},即50行代码可以写成如下形式:
CallableStatement cstmt = conn.prepareCall("{?=call pg_demo1.pro_add(?,?,?)}");
其中第一个占位符?表示返回值占位符
设置占位符参数与JDBC执行sql一样,不再多说。注意的是这里需要注册返回值的返回值类型,如代码57行所示。执行成功后再get第三个占位符的数据即是返回值。函数的调用与过程一致,不在此解释。
【子程序的代码参见我的上一篇文章:重拾PL/SQL语句块(十)】
JDBC调用游标
例:使用JDBC调用我的前一篇文章中包pg_demo1下面的pro_testRef过程来测试游标。
代码及执行结果如下:
JDBC调用PLSQL包中的游标
这里拿到数据库连接后也是通过prepareCall(String sql)获得CallableStatement,不过需将其强转成OracleCallableStatement。与前面相同也是需要注册返回值类型,游标中的数据会在Java代码执行后存入数据集中,再在Java中遍历操作即可。
今天关于JDBC简单的调用PLSQL中子程序、游标就先讲到这里。关于JDBC部分详细的API可以参见JDK,其中OracleTypes、OracleCallableStatement都是来自ojdbc的jar包。
【再会,下期见】
本文暂时没有评论,来添加一个吧(●'◡'●)