Java JDBC 存储过程放入 List<T>

标签 java sql jdbc spring-jdbc

我正在尝试编写一种利用我公司某人制作的界面的方法。接口(interface)方法设置返回类型:

<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);

所以我的问题是,如何以正确的格式返回这个“结果”?

最佳答案

如果您想返回结果映射中存在的值,您可以执行以下操作:

List<Value> list = new ArrayList<Value>(map.values());

如果您想归还 key :

List<String> list = new ArrayList<String>(m.keySet());

关于Java JDBC 存储过程放入 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39589850/

相关文章:

MySQL 从另一行中选择一行值

jdbc - 为 hive jdbc 连接添加超时

java - 甲骨文.security.crypto.core.CipherException : Invalid padding string (or incorrect password)

java - 用Java封装对象?

java - 运行 mybatis 生成器时出现意外错误。不支持的主要.次要版本 51.0

MYSQL SELECT 列中 ""之间的多个值

java - 如何在Spring Boot ireport中从applicaiton.properties获取MySQL连接

java - 如何使用java检索youtube搜索结果及其视频ID?

java - JFlex 扫描仪 ArrayIndexOutOfBoundsException : 769

mysql - SQL:JOIN 表的结果在其中一列上具有唯一值?