Один запрос со многими ResultSet против многих запросов с одним ResultSet каждый? - PullRequest
0 голосов
/ 30 мая 2019

У меня есть веб-приложение на Java, использующее Spring MVC. Объекты обычно имеют списки других объектов в качестве своих свойств. Мы строим объекты с помощью одного запроса, возвращающего несколько ResultSets, и обрабатываем его в DAO.

Пример: в моей колоде есть список карт.

public class Deck{
   private int id;
   private String name;
   private List<Card> cards;

   //Constructor and Getters & Setters
}

public class Card{
   private int id;
   private String name;
}

Для его построения мы используем запрос, который возвращает ResultSet для свойств колоды и другие ResultSet для построения карт и помещения списка в колоду.

Deck deck = null;

List<Card> cards = new ArrayList<Card>();
this.ps = this.conecction.prepareStatement("SP_SELECT_DECK ?");
this.ps.setInt(1, 1);

boolean isResultSet = this.ps.execute();

int nResult = 0;

do{
    if(isResultSet){
        this.rs = this.ps.getResultSet();

        while(this.rs.next()){
             switch (nResult) {
         case 0:
                     //Build the deck using the ResultSet
             deck = new DeckBuilder().newInstance(rs);
             break;                                      case 1:
                     //Add a new card built using the resultset
             cards.add(new CardBuilder().newInstance(rs));
             break;
         }
    }

        this.rs.close();
   }else{
       break;
   }            
   nResult++;
} while (this.ps.getMoreResults());

deck.setCards(cards);

Это лучшая практика? Или лучше сделать запрос с информацией о колоде, вернуться в приложение Java и вызвать другой запрос, чтобы заполнить список карт?

Вопрос касается шаблонов, передового опыта, производительности и сетевого трафика

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...