包含多个结果集的单个请求与包含一个结果集的多个请求?

时间:2019-05-30 11:06:36

标签: java performance design-patterns

我有一个使用Spring MVC的Java Web应用程序。这些对象通常具有其他对象列表作为其属性。我们使用一个返回多个ResultSet的查询来构建对象,并在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;
}

要构建它,我们使用一个查询thar返回卡片组属性的ResultSet,以及其他ResultSets来构建卡片并将列表放入卡片组。

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应用程序并调用另一个查询来填充卡片列表,这更好?

问题在于模式,良好做法,性能和网络流量

0 个答案:

没有答案