JAVA调用存储过程类使用说明
- 格式:doc
- 大小:29.00 KB
- 文档页数:3
存储过程使用说明
执行存储过程的类: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));