sql >> Databasteknik >  >> RDS >> Sqlserver

Hur får man flertabellsresultat av en lagrad procedur med SimpleJDBCCall på våren?

Jag var mest okunnig, det fungerar faktiskt! Du kan ange båda resultatuppsättningarna, med var och en sin egen mapper. I koden ser det ut så här:

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. Hur fastighetsproffs kan använda Microsoft Access

  2. Webrick är väldigt långsam med att svara. Hur snabbar man upp det?

  3. Laravel - fyll i saknade datum och räkningar från databasen

  4. Hur kan vi se den krypterade lagrade procedurens kropp i SSMS?