JFinal 本身已经提供了 Db.execute(ICallback Callback); 的方法来调用存储过程。
下面就是演示如何进行调用
先定义一个类 实现接口 ICallback 因为ICallback中已经有 conn 代码如下
class oracleDbPro implements ICallback {
public String oid = null;
public ResultSet rs = null;
@Override
public void run(Connection conn) throws SQLException {
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);
}
}
}
里面的代码基本就是和普通的JAVA调用存储过程的写法是一致的了。
在controller 中 调用存储过程返回的值:代码如下
public void trackresult() {
oracleDbPro oracleDbK = new oracleDbPro();
oracleDbK.oid = "010020002";
Db.execute(oracleDbK);
ResultSet rs = oracleDbK.rs;
}
这样就可以得到我们 要的 存储过程返回值了。
虽然很简单, 但是因为之前 一直不知道怎么使用 研究了很久才发现, 所以记录下来,有碰到类似问题的朋友也方便参考!