您的位置:首页 > 其它

jdbc调用存储过程和函数

2017-11-27 10:08 411 查看
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));
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: