sql >> Databáze >  >> RDS >> Sqlserver

Jak získat vícetabulkové výsledky uložené procedury pomocí SimpleJDBCCall na jaře?

Byl jsem nanejvýš neznalý, ve skutečnosti to funguje! Můžete zadat obě sady výsledků, každá s vlastním mapovačem. V kódu to vypadá takto:

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. Načíst LONGBLOB z MySQL v C#

  2. psql:FATAL:databáze <uživatel> neexistuje

  3. Je v tomto případě nutná normalizace?

  4. Připojte stůl k sobě