Java操作存储过程分析

CallableStatement 介绍:
CallableStatement 对象为所有的DBMS 提供了一种以标准形式调用已储存过程的方法。已储 存过程储存在数据库中。对已储存过程的调用是 CallableStatement对象所含的内容。这种调用是 用一种换码语法来写的,有两种形式:一种形式带结果参,另一种形式不带结果参数。结果参数是 一种输出 (OUT) 参数,是已储存过程的返回值。两种形式都可带有数量可变的输入(IN 参数)、 输出(OUT 参数)或输入和输出(INOUT 参数)的参数。问号将用作参数的占位符。

ResultSet 介绍:
ResultSet 是一个迭代模式的动态连接容器。
迭代模式的容器遍历的时候通常是这样的

while(rs.next()){
//循环内容
}

rs.next()返回值是一个boolean,表示在迭代过程中是否已经到结尾。
直接从statement.excuteQuery()获得的rs默认数据游标在起始数据的前一个位置,调用一遍rs.next()才能指向可能有数据的第一条数据。然后遍历继续,直到迭代集合中再无数据rs.next()返回false;

Connection 介绍:
connection是java中的一个类,在java.sql包下,用于获得数据库的连接,用的比较多的是返回createStatement和prepareStatement,用来返回一个statement

CallableStatement call = null;
ResultSet rs = null;
Connection conn = null;

conn = ******.getConnection();
call = conn.prepareCall(" call 过程名(?,?)");
call.setDate(1, new Date(Calendar.getInstance().getTimeInMillis()));
call.registerOutParameter(2, [b]oracle.jdbc.OracleTypes.CURSOR);[/b][color=red][/color]
call.execute();
rs = (ResultSet) call.getObject(2);
while (rs.next()) {
}

注意:上面例子是返回一个集合,红色标识行控制

如果返回某个值
[color=blue]call.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);[/color]
call.execute();
int result = call.getInt(3);

请注意蓝色标识部门
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值