因为项目需要,最近一直在学习Orcale存储过程,但发现在网上很少有人写Jave中Jfinal调用Orcale存储过程的文章,即使有也是几年前的,很多都不能用,今天给大家分享一段Jfinal调用Orcale存储过程的代码,亲测有效。废话不多说直接上代码:
public void runCountProc() {
Object o = Db.execute(new ICallback() {
@Override
public Object call(Connection conn) throws SQLException {
CallableStatement proc = conn.prepareCall("{call proc_normalcount(?,?,?,?,?)}");
proc.registerOutParameter(1, OracleTypes.VARCHAR);
proc.registerOutParameter(2, OracleTypes.VARCHAR);
proc.registerOutParameter(3, OracleTypes.VARCHAR);
proc.registerOutParameter(4, OracleTypes.VARCHAR);
proc.registerOutParameter(5, OracleTypes.VARCHAR);
proc.execute();
//代码来到这里就说明你的存储过程已经调用成功,如果有输出参数,接下来就是取输出参数的一个过程
Record record = new Record();
//国税有税源无
record.set("GSYSYW",proc.getObject(1));
//国税无税源有
record.set("GSWSYY",proc.getObject(2));
//识别号不同名称相同
record.set("SBHBTMCT",proc.getObject(3));
//识别号相同名称不同
record.set("SBHTMCBT",proc.getObject(4));
//识别号名称都相同
record.set("SBHMCXT",proc.getObject(5));
setAttr("Count",record);
return proc;
}
});
}
代码过了proc.execute();
后就说明你的存储过程已经调用成功,如果有输出参数,接下来就是取输出参数的过程。