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

2023-12-24

我正在实施一个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");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring中如何使用SimpleJDBCCall获取存储过程的多表结果? 的相关文章

随机推荐