【问题标题】:Can we Bring two Dataset at a time and compare it我们可以一次带两个数据集并进行比较吗
【发布时间】:2011-05-17 06:08:06
【问题描述】:

我有一个 ResultSet 方法 public ResultSet getItemPurchase(String 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. }

谁能帮我解决这个问题

【问题讨论】:

  • 您有什么问题?错误信息?出乎意料的结果?
  • 如果两个结果集都来自同一个数据库,那么我会使用WHERE a.price = b.price 之类的东西改进 SQL 查询...
  • 在任何情况下,您都应该使用“equals()”而不是“==”

标签: java multiple-resultsets


【解决方案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
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2018-01-18
    • 2015-01-02
    • 1970-01-01
    相关资源
    最近更新 更多