【发布时间】:2020-01-21 06:08:30
【问题描述】:
如果我使用返回多行数据的 Jdbc 模板调用存储过程。例如,存储过程根据某些业务规则返回 200 条记录。如何一次迭代和处理这 1 个,我们可以使用自定义行映射器吗?
在这里我可以为 1 位员工调用它。但需要它作为一个列表。
SimpleJdbcCall jdbcCall = new
SimpleJdbcCall(dataSource).withProcedureName("getEmployeeeRecord");
SqlParameterSource in = new MapSqlParameterSource().addValue("emp_id", id);
Map<String, Object> out = jdbcCall.execute(in);
Employee employee = new Employee();
employee.setId(id);
employee.setName((String) out.get("out_name"));
employee.setAge((Integer) out.get("out_age"));
return employee ;
【问题讨论】:
-
据我所知,API 不支持。它只支持单行结果,或参数中的结果集。如果您想处理返回结果集的存储过程,那么您可能应该直接使用
JdbcTemplate(但该 API 似乎也暗示它并不真正期望可调用语句返回结果集)。
标签: java stored-procedures jdbc spring-jdbc simplejdbccall