jdbcTemplate调用带输入输出参数的存储过程

public List<Map<String, Object>> addPlanRuleProc(Map<String, Object> where) {
		StringBuffer sql = new StringBuffer();
		sql.append(" {call P_IMPORT_N3(V_BATCH_NO => :V_BATCH_NO,IO_CURSOR => :IO_CURSOR)} ");
		List<Map<String, Object>> planList = jdbcTemplate.getJdbcOperations().execute(sql.toString(),
				new CallableStatementCallback<List<Map<String, Object>>>() {


					@Override
					public List<Map<String, Object>> doInCallableStatement(
							CallableStatement cs) throws SQLException,
							DataAccessException {
						List<Map<String, Object>> resultsMap = new ArrayList<>();
						cs.setString("V_BATCH_NO", (String) where.get("V_BATCH_NO"));
						cs.registerOutParameter("IO_CURSOR", OracleTypes.CURSOR);// OracleTypes有两个包,调用的jdbc包
						cs.execute();
						ResultSet rs = (ResultSet) cs.getObject("IO_CURSOR");// 获取游标一行的值 注:这个位置的下标要和返回CURSOR的下标位置一致,否则报错


						while (rs.next()) {// 转换每行的返回值到Map中


							Map<String, Object> rowMap = new HashMap<String, Object>();


							rowMap.put("DLR_SIMPLE_NAME", rs.getString("DLR_SIMPLE_NAME"));
							rowMap.put("VEHICLE_BRAND_NAME", rs.getString("VEHICLE_BRAND_NAME"));


							resultsMap.add(rowMap);


						}
						rs.close();
						return resultsMap;
					}
		});
		return planList;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翅膀君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值