Duffblog

          前進一步,看看,需要前進更大一步才可以。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            5 隨筆 :: 53 文章 :: 5 評論 :: 0 Trackbacks

          public class LoadStoredProcedure extends StoredProcedure {

          ?
          ?private Map inParam;
          ?
          ?public MktLoadStoredProcedure(String storedProcedureName) {
          ??DataSource ds = (DataSource)SpringContextUtils.getInstance().getBean("dataSource");
          ??setDataSource(ds);
          ??setSql(storedProcedureName);
          ?}
          ?
          ?public RowMapper RouteRowMapper = new RowMapper(){
          ??public Object mapRow(ResultSet rs,int rowNum) throws SQLException{
          ???BidRouteInfo route = new BidRouteInfo();
          ???route.setBidHeaderId(rs.getString("BID_HEADER_ID"));
          ???route.setBidRouteInfoId(rs.getString("BID_ROUTE_INFO_ID"));
          ???route.setCreatedByUser(rs.getString("CREATED_BY_USER"));
          ???route.setCreatedDtmLoc(rs.getDate("CREATED_DTM_LOC"));
          ???route.setCreatedOffice(rs.getString("CREATED_OFFICE"));
          ???route.setCreatedTimeZone(rs.getString("CREATED_TIME_ZONE"));
          ???route.setDestCode(rs.getString("DEST_CODE"));
          ???route.setDestName(rs.getString("DEST_NAME"));
          ???route.setPodCode(rs.getString("POD_CODE"));
          ???route.setPodDestMode(rs.getString("POD_DEST_MODE"));
          ???route.setPodName(rs.getString("POD_NAME"));
          ???route.setPolCode(rs.getString("POL_CODE"));
          ???route.setPolName(rs.getString("POL_NAME"));
          ???route.setPorCode(rs.getString("POR_CODE"));
          ???route.setPorName(rs.getString("POR_NAME"));
          ???route.setPorPolMode(rs.getString("POR_POL_MODE"));
          ???route.setPorState(rs.getString("POR_STATE"));
          ???route.setPrincipalGroupCode(rs.getString("PRINCIPAL_GROUP_CODE"));
          ???route.setRecordVersion(rs.getLong("RECORD_VERSION"));
          ???route.setSeqNo(rs.getLong("SEQ_NO"));
          ???route.setServiceType(rs.getString("SERVICE_TYPE"));
          ???route.setStateCode(rs.getString("STATE_CODE"));
          ???route.setUpdatedByUser(rs.getString("UPDATED_BY_USER"));
          ???route.setUpdatedDtmLoc(rs.getDate("UPDATED_DTM_LOC"));
          ???route.setUpdatedOffice(rs.getString("UPDATED_OFFICE"));
          ???route.setUpdatedTimeZone(rs.getString("UPDATED_TIME_ZONE"));
          ???route.setRowStatus(BaseObject.ROWSTATUS_UNCHANGED);
          ???return route;
          ??}
          ?};
          ?
          ?public RowMapper FreightRowMapper = new RowMapper(){
          ??public Object mapRow(ResultSet rs,int rowNum) throws SQLException{
          ???BidFreightDetail freight = new BidFreightDetail();
          ???freight.setBidRouteInfoId(rs.getString("BID_ROUTE_INFO_ID"));
          ???freight.setBgColor(rs.getString("BG_COLOR"));
          ???freight.setBidFreightDetailId(rs.getString("BID_FREIGHT_DETAIL_ID"));
          ???freight.setChargeCode(rs.getString("CHARGE_CODE"));
          ???freight.setContainerType(rs.getString("CONTAINER_TYPE"));
          ???freight.setCreatedByUser(rs.getString("CREATED_BY_USER"));
          ???freight.setCreatedDtmLoc(rs.getDate("CREATED_DTM_LOC"));
          ???freight.setCreatedOffice(rs.getString("CREATED_OFFICE"));
          ???freight.setCreatedTimeZone(rs.getString("CREATED_TIME_ZONE"));
          ???freight.setPrincipalGroupCode(rs.getString("PRINCIPAL_GROUP_CODE"));
          ???freight.setRate(rs.getBigDecimal("RATE"));
          ???freight.setRecordVersion(rs.getLong("RECORD_VERSION"));
          ???freight.setUpdatedByUser(rs.getString("UPDATED_BY_USER"));
          ???freight.setUpdatedDtmLoc(rs.getDate("UPDATED_DTM_LOC"));
          ???freight.setUpdatedOffice(rs.getString("UPDATED_OFFICE"));
          ???freight.setUpdatedTimeZone(rs.getString("UPDATED_TIME_ZONE"));
          ???freight.setRowStatus(BaseObject.ROWSTATUS_UNCHANGED);
          ???return freight;
          ??}
          ?};
          ?//spring版本從1.2更新到2.0-rc3
          //?private RowMapperResultReader callback = new RowMapperResultReader(rowMapper){
          //??public void processRow(ResultSet rs) throws SQLException{
          //???int count = rs.getMetaData().getColumnCount();
          //???String[] header = new String[count];
          //???for(int i=0;i<count;i++){
          //????header[i] = rs.getMetaData().getColumnName(i+1);
          //???}
          //???do{
          //???? HashMap<String,String> row = new HashMap<String,String>();
          //???? for(int i=0;i<count;i++){
          //????? row.put(header[i],rs.getString(i+1));
          //???? }
          //???? rsList.add(row);
          //???}while(rs.next());
          //??}
          //?};
          ?
          //?private RowMapperResultSetExtractor callback = new RowMapperResultSetExtractor(RouteRowMapper){
          //??public List extractData(ResultSet rs) throws SQLException{
          //???int count = rs.getMetaData().getColumnCount();
          //???String[] header = new String[count];
          //???for(int i=0;i<count;i++){
          //????header[i] = rs.getMetaData().getColumnName(i+1);
          //???}
          //???while(rs.next()){
          //???? HashMap<String,String> row = new HashMap<String,String>();
          //???? for(int i=0;i<count;i++){
          //????? row.put(header[i],rs.getString(i+1));
          //???? }
          //???? rsList.add(row);
          //???}
          //???return rsList;
          //??}
          //?};
          ?
          ?public Map execute(){
          ??compile();
          ??if(inParam == null){
          ???return execute();
          ??}
          ??return execute(this.inParam);
          ?}

          ?public void setOutParameter(String column,int type,RowMapper rowMapper){
          ??declareParameter(new SqlOutParameter(column,type,rowMapper));
          ?}
          ?
          ?public void setParameter(String column,int type){
          ??declareParameter(new SqlParameter(column,type));
          ?}
          ?public void setInParam(Map inParam){
          ??this.inParam = inParam;
          ?}
          }

          調用:

          ???LoadStoredProcedure sp = new LoadStoredProcedure("SP_MKT_LOAD_TEST");
          ??sp.setParameter("V_BID_HEADER_ID", Types.VARCHAR);
          ??sp.setOutParameter("ROUTECURSOR", OracleTypes.CURSOR,sp.RouteRowMapper);
          ??sp.setOutParameter("FRIGHTCURSOR", OracleTypes.CURSOR,sp.FreightRowMapper);
          ??
          ??Map<String,String> mapValue = new HashMap<String,String>(1);
          ??mapValue.put("V_BID_HEADER_ID", bidHeaderId);
          ??sp.setInParam(mapValue);
          ??Map map = sp.execute();

          List freightDetails = (List)map.get("FRIGHTCURSOR");
          ??List routeInfos = (List)map.get("ROUTECURSOR");
          具體參考:

          http://www.springframework.org/docs/reference/jdbc.html

          posted on 2006-09-29 08:56 追球者 閱讀(1416) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 司法| 虹口区| 潜江市| 衡阳县| 武鸣县| 新安县| 东丽区| 江永县| 涞源县| 万荣县| 潍坊市| 秭归县| 东丽区| 孟连| 玛纳斯县| 襄垣县| 长子县| 汾阳市| 海晏县| 镇原县| 呼和浩特市| 鹤山市| 连江县| 正镶白旗| 新竹市| 岳普湖县| 长垣县| 普洱| 上高县| 阿拉尔市| 霍山县| 玛沁县| 平湖市| 韶关市| 镇赉县| 葫芦岛市| 浏阳市| 屏山县| 静宁县| 甘谷县| 赤城县|