Сравнение двух ResultSet в Java - PullRequest
       4

Сравнение двух ResultSet в Java

2 голосов
/ 19 октября 2011

Каков наилучший способ обработки Java ResultSet? Я создаю настольное приложение, которое подключается к базе данных Oracle с помощью JDBC.

Однако у меня возникли проблемы с обработкой ResultSets, поскольку я не могу выполнить сравнение с помощью цикла for.

// create a database connection object
DB db = new DB();

// get rows of my first table and second table
ResultSet firstRS = db.getMyFirstTable();
ResultSet seconRS = db.getSecondTable();

// compare the two tables
while(firstRS.next()) 
{
    // get the row of my first table
    String firstRSRow = firstRS.getString("col1");

    while(secondRS.next()) 
    {
        // get the row of my second table
        String secondRSRow = seconRS.getString("col1");

        // compare row from first table to the row in second table
        if(firstRSRow.startsWith(secondRSRow))
        {
            // do some processing here....
        } // end if
    } // end while
} // end while

Я знаю, что этого можно добиться с помощью Hibernate с несколькими строками кода, но у меня нет времени на изучение этого.

Я также нашел общедоступные DbUtils от apache, но мне, как начинающему программисту, это кажется сложным.

Есть ли другой способ / инструменты / библиотеки / фреймворк достаточно простой, чтобы получить ResultSet из баз данных и манипулировать им простым и понятным способом?

Буду также признателен, если вы направите меня на веб-сайт с примерами кодов, касающихся подключения к базе данных Java.

Большое спасибо за вашу поддержку.

Ответы [ 4 ]

0 голосов
/ 24 августа 2017
public static boolean resultset(String SQL1, String SQL2){
    public boolean status=false;
    ResultSet ViewResultset = st.executeQuery(SQL1);
      ResultSet QueryResultset = st.executeQuery(SQL2);

      while (QueryResultset.next() | ViewResultset.next())
      if (ViewResultset.getRow() == 0   | QueryResultset.getRow() == 0) {
      break;
      } else {
         for (int i = 1; i < ViewResultset.getMetaData().getColumnCount() + 1; i++) {
            System.out.println("OOO"+ QueryResultset.getMetaData().getColumnCount());
            String columnName = ViewResultset.getMetaData().getColumnName(i);
      System.out.println("ColumnName :" + columnName);
    for (int j = 1; j < QueryResultset.getMetaData().getColumnCount() + 1; j++)
    if (ViewResultset.getMetaData().getColumnName(i).equals(QueryResultset.getMetaData().getColumnName(j))&& !(QueryResultset.getString(columnName) == null || ViewResultset.getString(columnName) == null))
    if (ViewResultset.getString(columnName).toUpperCase().contains(QueryResultset.getString(columnName).toUpperCase())) {
        System.out.println(" Actual "+ ViewResultset.getMetaData().getColumnName(i)     + " Expected: "+ ViewResultset.getString(columnName));
        status=true;

    }      
    else {System.out.println(" Actual "+ ViewResultset.getMetaData().getColumnName(i)     + " Expected: "+ ViewResultset.getString(columnName));
    }
    }
    }
    return status;
    } 
}
0 голосов
/ 19 сентября 2013
DB db = new DB();

 // get rows of my first table and second table
ResultSet firstRS = db.getMyFirstTable();
ResultSet seconRS = db.getSecondTable();

// compare the two tables
while(firstRS.next() || secondRS.next()) 
{
// get the row of my first table
String firstRSRow = firstRS.getString("col1");
String secondRSRow = seconRS.getString("col1")

    // compare row from first table to the row in second table
    if(firstRSRow.startsWith(secondRSRow))
    {
        // do some processing here....
    } // end if
} // end while
0 голосов
/ 16 мая 2016

ResultSet, в конечном счете, является подклассом Object, и мы можем сравнивать два или более объекта напрямую.Немного конкретный вопрос:

 ResultSet rs=st.executeQuery(sql1);
 ResultSet rs1=st.executeQuery(sql2);

, где sql1 и sql2 - это 2 утверждения

 while(rs.next() && rs1.next()){
     int a=rs.next();
     int b=rs1.next();
     if(a==b){
          System.out.println("Compairing two ResultSets");
     }
 }
0 голосов
/ 19 октября 2011

Почему ResultSet?Вы можете легко сравнить значения с оператором SELECT.Если вы все еще хотите ResultSet, подумайте о CachedRowSet .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...