gpt4 book ai didi

java - spring中如何使用SimpleJDBCCall获取存储过程的多表结果?

转载 作者:行者123 更新时间:2023-12-01 04:48:42 25 4
gpt4 key购买 nike

我正在实现一个 Spring+ MSSQL Server 2008 应用程序。我使用 SimpleJDBCCall API 来执行存储过程并检索结果。

对于具有单表结果的存储过程,它工作正常,但我不知道如何将其用于具有多表结果的过程。

示例程序主体:

多表结果

    SELECT * FROM TABLE1
SELECT * FROM TABLE2

最佳答案

我真是太无知了,它确实有效!您可以指定两个结果集,每个结果集都有自己的映射器。在代码中它看起来像这样:

SimpleJdbcCall call = new SimpleJdbcCall(this.jdbc)
.withProcedureName("get_users3")
.returningResultSet("rs1", new ParameterizedRowMapper<Object[]>()
{
@Override
public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException
{
return new Object[] { rowNum, rs.getInt(1), rs.getString(2) };
}
})
.returningResultSet("rs2", new ParameterizedRowMapper<Object[]>()
{
@Override
public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException
{
return new Object[] { rowNum, rs.getInt(1), rs.getString(2) };
}
});

Map<String, Object> res = call.execute();
assertNotNull(res.get("rs1"));
assertNotNull(res.get("rs2"));
List<Object[]> l1 = (List<Object[]>)res.get("rs1");
List<Object[]> l2 = (List<Object[]>)res.get("rs2");

关于java - spring中如何使用SimpleJDBCCall获取存储过程的多表结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15403504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com