2011-05-17 51 views
0

我有一個的ResultSet方法公衆的ResultSet getItemPurchase(字符串PID)從一個數據庫表中返回的數據。同樣我有另一種方法public Resultset getItemSale(String sid)。我使用函數調用它們ResultSet rs1 = getItemPurchase(Pid);和下一個函數是ResultSet rs2 = getItemSale(Pid);我們可以帶上兩個數據集的時間和比較它

我想做如下。

1. while(rs1.next) 
2. { 
3. rs1.getString("Item"); 
4.  if(rs1.getString("price")==rs2.getString("price") 
5.  { 
6.   //some code here 
7.  } 
8.  else{ 
9. rs1.getDate("Purchase Date");} 
10. rs2.getString("CustomerName"); 
11. } 

任何人可以請幫我在這

+0

你有什麼問題?錯誤訊息?意外的結果? – mellamokb 2011-05-17 06:12:27

+3

如果兩個結果集來自同一個數據庫,那麼我會用'WHERE a.price = b.price'之類的東西來改進SQL查詢... – 2011-05-17 06:15:57

+1

在任何情況下,而不是「==」,您應該使用「equals ()」 – 2011-05-17 06:18:31

回答

1

我建議你寫兩個域對象,普通的Java對象,如:

public class ItemPurchase{ 
    private String price; 

    //setter/getter for price 

    private String purchaseDate; 
    //setter/getter for purchaseDate 
} 
public class ItemSale{ 
    private String price; 

    //setter/getter for price 

    private String customerName; 
    //setter/getter for customerName 
} 

現在創建對象的列表,同時遍歷每個結果集如:

public List createListOfItemPurchased(ResultSet rs){ 
List<ItemPurchase> purchaseList=new ArrayList<ItemPurchase>(); 
while(rs.next()){ 
    ItemPurchase purchaseObject=new ItemPurchase(); 
    purchaseObject.setPrice(rs.getString("price")); 
//fill all required data in it 
    purchaseList.add(purchaseObject); 
} 
    return purchaseList; 
} 

同樣的方式填充salesObjects,然後創建一個方法來過濾掉你的結果,如:

filter(List purchaseList, List salesList){ 
    for(ItemPurchase purchaseObj:purchaseList){ 
    //process the objects according to your requirement 
    } 
}