2013-03-14 85 views

回答

0

我是最無知的,它實際上是工作!您可以指定兩個結果集,每個都有自己的映射器。 在代碼中,它看起來是這樣的:

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

我有困難的情況下在這裏,我不能改變的方式數據庫的工作 我的意思是,我不能改變存儲程序spilit選擇或使用SimpleJdbcCall時怎麼一回事,因爲我從存儲過程得到結果 – user1980260 2013-03-14 09:38:07

+0

我錯了,它實際上可以做到! – flup 2013-03-14 19:28:59

相關問題