原帖地址:http://my.oschina.net/u/931157/blog/103424
JFinal 本身已经提供了 Db.execute(ICallback Callback); 的方法来调用存储过程。
下面就是演示如何进行调用
先定义一个类 实现接口 ICallback 因为ICallback中已经有 conn 代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
class
oracleDbPro
implements
ICallback {
public
String oid =
null
;
public
ResultSet rs =
null
;
@Override
public
void
run(Connection conn)
throws
SQLException { <span></span>
CallableStatement proc =
null
;
try
{
proc = conn
.prepareCall(
"{ call PKG_JAVA_WEBSITEAPP_OPER.SP_ORDER_TRICE_SEARCH(?,?) }"
);
proc.setString(
1
, oid);
proc.registerOutParameter(
2
, OracleTypes.CURSOR);
proc.execute();
rs = (ResultSet) proc.getObject(
2
);
}
finally
{
DbKit.close(proc, conn);
}
}
}
|
在controller 中 调用存储过程返回的值:代码如下
1
2
3
4
5
6
|
public
void
trackresult() {
oracleDbPro oracleDbK =
new
oracleDbPro();
oracleDbK.oid =
"010020002"
;
Db.execute(oracleDbK);
ResultSet rs = oracleDbK.rs;
}
|
虽然很简单, 但是因为之前 一直不知道怎么使用 研究了很久才发现, 所以记录下来,有碰到类似问题的朋友也方便参考!