JdbcTemplate plusieurs jeux de résultats

J'essaie de trouver un moyen facile de traiter avec des Procédures Stockées /SQL renvoyant plusieurs ensembles de données. J'ai été en utilisant le SimpleJdbcOperations#queryForList() cependant, cette méthode ne retourne que le premier résultat comme un List<Map<String, Object>>. J'ai besoin d'être en mesure d'obtenir plusieurs jeux de résultats, de préférence en Collection de List<Map<String, Object>> ou quelque chose. Le programme que je suis en train d'écrire est un composant logiciel intermédiaire donc je ne sais pas ce que le SQL, ou la forme de l'ensemble de résultats.

Je pense que je dois utiliser le JdbcOperations classe qui me donne accès à plus de méthodes, y compris execute(CallableStatementCreator csc, CallableStatementCallback<T> action) mais maintenant je suis coincé.

    CallableStatementCallback<T> callback = new CallableStatementCallback<T>() {
       @Override
       public T doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException
       {
           boolean results = cs.execute(request);
           while(results)
           {
               ResultSet result = cs.getResultSet();
               results = cs.getMoreResults();
           }
           return null;
        }
};

Je ne suis pas vraiment sûr de savoir comment utiliser la méthode bien que, ou que faire avec de la ResultSet pour obtenir mon générique List<Map<String, Object>>s.

ResultSet contient des lignes que vous trouverez après l'exécution de SQL directement sur une base de données, il ne sera jamais de retour d'un List<Map<X,Y>>. Vous devez générer vous-même avec les champs de la ResultSet, auquel vous pouvez accéder avec des getters.
Je devrais être capable de réitérer la ResultSet à l'aide de hasNext() et getObject()?
Vous pouvez utiliser un while boucle avec next() et obtenir différents champs de ligne avec les différentes méthodes.
Pense que je ne peux utiliser getObject car je ne sais pas ce que le ResultSet sera.
N'êtes-vous pas celui de l'écriture SQL? Je pense que vous allez avoir à le jeter comme un point.

OriginalL'auteur The Cat | 2013-04-22