JdbcTemplate调用ORACLE存储过程


List<GridDataBean> gridDataBeans =(List<GridDataBean>) jdbcTemplate.execute(new CallableStatementCreator(){

@Override
public CallableStatement createCallableStatement(Connection connection) throws SQLException {
String spSql = "{call "+sp+"(?,?,?)}";
CallableStatement callableStatement = connection.prepareCall(spSql);
callableStatement.setString(1,queryParam.getAccount());
callableStatement.setString(2,queryParam.getCustomerMnemonic());
callableStatement.registerOutParameter(3, OracleTypes.CURSOR);
return callableStatement;
}
}, new CallableStatementCallback(){

@Override
public Object doInCallableStatement(CallableStatement callableStatement) throws SQLException, DataAccessException {
List<GridDataBean> gridDataBeans = new ArrayList<>();
callableStatement.execute();
ResultSet resultSet = (ResultSet) callableStatement.getObject(3); --这个3是呼应上面的3输出数据的
while(resultSet.next()){
GridDataBean gridDataBean = new GridDataBean ()
gridDataBeans.add(gridDataBean );

}
return gridDataBeans;
}
});
return gridDataBeans;

猜你喜欢

转载自www.cnblogs.com/menglixiazhiweizhi/p/12804122.html
今日推荐