JDBC 调用存储过程

134 阅读1分钟
package cn.et;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.Types;

/*
* 调用存储过程
* {call 存储过程名(?,?,?)} 过程有几个参数就写几个问号
*
* 调用函数
* {?=call 函数名(?,?)} 有几个参数就写几个问号
*/
public class Test {
public static void main(String[] args) throws Exception {

}
//调用存储过程
@org.junit.Test
public void callProdecre() throws Exception{
String sql="{call prg_add(?,?,?)}";
Connection conn=OracleDbUtil.getConnection();
CallableStatement cs = conn.prepareCall(sql);
cs.setInt(1, 7777);
cs.setInt(2, 7987);
//返回值 Types.INTEGER设值返回的类型
cs.registerOutParameter(3, Types.INTEGER);
//执行
cs.execute();
//获取返回值
int a=cs.getInt(3);
System.out.println(a);
}

//调用函数
@org.junit.Test
public void callfuntion() throws Exception{
String sql="{?=call fun_add(?,?)}";
Connection conn=OracleDbUtil.getConnection();
CallableStatement cs=conn.prepareCall(sql);
//设置第二个问好的值 因为第一个是问号是返回值
cs.setInt(2,355);
cs.setInt(3, 4545);
//设值返回值类型 Types.INTEGER
cs.registerOutParameter(1, Types.INTEGER);
cs.execute();
System.out.println(cs.getInt(1));
}
}
---------------------
作者:phone13144830339
来源:CSDN
原文:blog.csdn.net/phone131448…
版权声明:本文为博主原创文章,转载请附上博文链接!