sql >> Database >  >> RDS >> Sqlserver

Hoe krijg ik in het voorjaar multi-tabelresultaten van een opgeslagen procedure met SimpleJDBCCall?

Ik was zeer onwetend, het werkt inderdaad! U kunt beide resultatensets specificeren, met elk zijn eigen mapper. In code ziet het er als volgt uit:

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



  1. json_encode geeft niets terug

  2. Oracle, PDO_OCI versus OCI8

  3. haal getallen uit een *varchar*-cel en bereken ze in pure mysql

  4. randomiseren van grote dataset