我有一个使用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应用程序并调用另一个查询来填充卡片列表,这更好?
问题在于模式,良好做法,性能和网络流量