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 中?

JDBC 调用函数或存储过程

关于JDBC访问存储过程的问题

关于JDBC访问存储过程的问题

Talend call SqlServer带表结构list参数的存储过程

请教高手:java中 SQL查询结果返回为List<Map<String,Object>>结果集顺序问题