JAVA调用存储过程类使用说明

  • 格式:doc
  • 大小:29.00 KB
  • 文档页数:3

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存储过程使用说明

执行存储过程的类:ProcedureExecutor ,使用该类时,先要创建该类的对象new ProcedureExecutor(); 然后调用execProcedure方法,该方法需要传入两个参数,第一个是存储过程的名称(带模式名),第二个是回调对象。

存储过程回调类:ProcedureCallBack,执行存储过程时,需要传入该类的一个实例,创建该类的对象时,必须实现两个方法mapRow和registerParameter。

存储过程返回值类:ProcedureResult,该类封装了存储过程的返回值

//取单个输出值示例

//创建一个回调对象,后面传给存储过程执行对象

ProcedureCallBack pcb=new ProcedureCallBack(){

public Object mapRow(ResultSet rs,int rowNum) throws SQLException{ return rs.getString(2);

}

public void registerParameter() throws SQLException{

//设置第一个参数

setInt(1,398240);

//设置输出参数类型

registerOutParameter(2,Types.VARCHAR);

}

};

//创建一个存储过程执行对象

ProcedureExecutor procedureExecutor=new ProcedureExecutor();

//执行存储过程(传入存储过程名称和回调对象)

ProcedureResult pr=procedureExecutor.execProcedure("USERID.SEL_PRO", pcb);

//取得输出值列表

List outList=pr.getOutputList();

for(int i=0;i

System.out.println((String)outList.get(i));

}

//取一个ResultSet 示例

ProcedureCallBack pcb=new ProcedureCallBack(){

public Object mapRow(ResultSet rs,int rowNum) throws SQLException{ //将输出值存入自己定义个一个javabean中

return new DataBean(rs.getString(1),rs.getString(2));

}

public void registerParameter() throws SQLException{

//setInt(1,398240);

//registerOutParameter(2,Types.VARCHAR);

}

};

ProcedureResult

pr=procedureExecutor.execProcedure("PUTER_RS", pcb);

List list=pr.getResultList();

for(int i=0;i

DataBean dataBean=(DataBean)list.get(i);

System.out.println(dataBean.getComputer_name());

System.out.println(dataBean.getCpu());

}

}

//取多个输出值示例

ProcedureCallBack pcb=new ProcedureCallBack(){

public Object mapRow(ResultSet rs,int rowNum) throws SQLException{ return null;//new

DataBean(rs.getString(1),rs.getString(2));

}

public void registerParameter() throws SQLException{

setInt(1,400153);

registerOutParameter(2,Types.BIGINT);

registerOutParameter(3,Types.INTEGER);

registerOutParameter(4,Types.SMALLINT);

registerOutParameter(5,Types.CHAR);

registerOutParameter(6,Types.DECIMAL);

registerOutParameter(7,Types.DOUBLE);

registerOutParameter(8,Types.DOUBLE);

registerOutParameter(9,Types.DATE);

registerOutParameter(10,Types.TIMESTAMP);

registerOutParameter(11,Types.CLOB);

registerOutParameter(12,Types.BLOB);

registerOutParameter(13,Types.VARCHAR);

}

};

ProcedureResult

pr=procedureExecutor.execProcedure("USERID.DATA_OUTLIST", pcb);

List list=pr.getOutputList();

for(int i=0;i

System.out.println(list.get(i));