Java JDBC 存储过程到 List<T>
Posted
技术标签:
【中文标题】Java JDBC 存储过程到 List<T>【英文标题】:Java JDBC stored procedure into List<T> 【发布时间】:2016-09-20 09:01:11 【问题描述】:我正在尝试编写一种方法,该方法利用我公司中某人制作的界面。接口方法设置为返回类型:
<T> List<T>
并接受其他类型的参数:
RowMapper<T> rowMapper
我想使用带有一些参数的存储过程,到目前为止我有以下内容:
SimpleJdbcCall getYearWeekOptions = new SimpleJdbcCall(getDataSource()) .withoutProcedureColumnMetaDataAccess().withProcedureName(procedureName)
.declareParameters(new SqlOutParameter(PARAMETER_COMPANY_ID, Types.VARCHAR))
.declareParameters(new SqlOutParameter(PARAMETER_MIN_YEAR, Types.NUMERIC))
.declareParameters(new SqlOutParameter(PARAMETER_MIN_WEEK, Types.NUMERIC));
getYearWeekOptions.returningResultSet("yearWeekOptions", rowMapper);
Map<String, Object> result = getYearWeekOptions.execute(companyId, yearStart, weekStart);
所以我的问题是,我如何以正确的格式返回这个“结果”?
【问题讨论】:
【参考方案1】:如果您想返回结果映射中存在的值,您可以执行以下操作:
List<Value> list = new ArrayList<Value>(map.values());
如果你想归还钥匙:
List<String> list = new ArrayList<String>(m.keySet());
【讨论】:
以上是关于Java JDBC 存储过程到 List<T>的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 JDBC 将 Java 存储过程加载到 Oracle 10g 中?