首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎么比较两个SQL查询语句产生的结果集是否相同?

2012-02-10 
如何比较两个SQL查询语句产生的结果集是否相同???我用JDBC连接了MYSQL数据库,对一个表(表的名字叫Coffees)

如何比较两个SQL查询语句产生的结果集是否相同???
我用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编程实现对这两个结果集进行比较,判断出它们不同?只需要判断出它们是否相同就可以了,谢谢各位大侠能给出指点!!!!




[解决办法]
如果你这两个结果集都没有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;
}
}

热点排行