我用JDBC连接了MYSQL数据库,对一个表(表的名字叫Coffees)进行的查询操作,我的代码如下:
public class Coffees {
    
    /** Creates a new instance of Coffees */
    public Coffees() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Connection con; Statement sql; ResultSet rs;
       try { Class.forName("com.mysql.jdbc.Driver");
        }
       catch(ClassNotFoundException e)
        {System.out.println(""+e + " TEST ");}
       
       try{ con = DriverManager.getConnection("jdbc:mysql://localhost:3306/COFFEES","root","nbuser");
             sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                                     ResultSet.CONCUR_READ_ONLY);
             rs = sql.executeQuery("SELECT COF_NAME, PRICE FROM COFFEES ");
             while(rs.next())
             {
                 String name = rs.getString("COF_NAME");
                 Double price = rs.getDouble("PRICE");
                 System.out.println(name + "              " + price);
                 
             }
       
               con.close();
             }
        catch (SQLException sqlexception){
            System.out.println("Exception" + sqlexception);
        }
    }
}
 
我用executeQuery("SELECT COF_NAME, PRICE FROM COFFEES ")查询了一次该表,得到的结果集是:
Colombian              7.99
Colombian_Decaf              8.99
Espresso              9.99
French_Roast              8.99
French_Roast_Decaf              9.99我如果再次查询一次该表,executeQuery("SELECT COF_NAME , ABS(PRICE) AS PRICE FROM COFFEES"),得到的结果集是:
Colombian              7.9899997711182
Colombian_Decaf              8.9899997711182
Espresso              9.9899997711182
French_Roast              8.9899997711182
French_Roast_Decaf              9.9899997711182我的问题是: 
如何用JAVA编程实现对这两个结果集进行比较,判断出它们不同?只需要判断出它们是否相同就可以了,谢谢各位大侠能给出指点!!!!

解决方案 »

  1.   

    直接比较结果集没有特别好的办法,最本的就是将结果集放到List中,然后对两个List进行比较
    其实直接对SQL进行控制就OK啦,干嘛非要对结果集进行比较?
      

  2.   

    谢谢SUREYOR,能不能具体的给出一段代码,怎么把结果集放在LIST中实现比较是否相同,谢谢了
      

  3.   

    只要循环你的ResultSet对象,一个一个塞进去不就行了?什么要这么做呢?从SQL上面的确是可以控制的。
      

  4.   

    谢谢楼上的,请问什么是从SQL控制,我是菜鸟,不太清楚。谢谢赐教
      

  5.   

    谢谢扬扬,我的目的就是当执行不同的SQL查询操作的时候,可能会产生不同的结果集,所以我想比较这些结果集是否相同,比较规则就是看每条相对应的记录是否都完全一样,请问扬扬,能不能给出循环比较的示例代码呢?因为我是初学JAVA,所以不太熟悉,希望您能帮助,谢谢!!!
      

  6.   

    如果你这两个结果集都没有close,可以这样:                            rs.last();
    rs2.last();
    if (rs.getRow() != rs2.getRow()) {
    //记录数不等,即结果不等
    }
    rs.first();
    rs2.first();
    while (rs.next() && rs2.next()) {
    if (Math.abs(rs.getFloat(2) - rs2.getFloat(2)) > 0.00000001) {
                     //记录值不等
                      break;
    }
    }