pętla while, zawiesza się przy przeglądaniu rekordów z bazy danych

pętla while, zawiesza się przy przeglądaniu rekordów z bazy danych
CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 211
0

Poniższa pętla działa... w specyficzny sposób.

Kopiuj
                System.out.println( "debug 0" );

                while( rs.next() ) {
                    id = Integer.parseInt( rs.getString( 1 ) );
                    perm = rs.getInt( 6 );
                    String text = rs.getString( 3 );
                    
                    if( perm == 0 ) {
                        JOptionPane.showConfirmDialog( null, "<html><body><p style='width: 320px; text-indent: 1em;'>"+text+"</p></body></html>", "Komunikat (nr #"+id+")", JOptionPane.PLAIN_MESSAGE );
                    } else System.out.println( text );

                    System.out.println( "debug 1" );
                }

                System.out.println( "debug 2" );

Pętla działa w pętli nieskończonej, więc co chwilę na terminalu wypisywane jest debug 0..1..2..0..1..2..0..1..2..3 itd.
Gdy dodam do bazy danych (mysql) rekord to pętla zacina się na debug 1 i koniec - proces trzeba ubić.

Jeśli najpierw dodam rekord do bazy danych, później uruchomię program. To pętla działa bezbłędnie, niezależnie ile później dodam rekordów w międzyczasie.

Gdzie jest błąd :D ?

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
0

a robisz commit po dodaniu rekordu?

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 211
0

Rekordy dodaję za pomocą innej aplikacji - www (php) lub phpmyadmin.
W java tylko je pobieram:

  1. otwieram poczłączenie
  2. wykonuje zapytanie
  3. wyswietlam informacje
  4. zamykam połączenie
  5. wait 30 min
  6. goto 1
SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 616
0

Kurcze uruchom debug i zobacz gdzie stoi, to takie trudne?

CorruptedByCPU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 211
0

Ok, wykorzystałem tego debugera i...
pętla wykonuje się poprawnie, JOptionPane wykonuje się ale nie wyświetla komunikatu. Zmienne wszystkie poprawne.

Dobra, chyba znalazłem problem - okno się pojawiło w tle gdzieś pod pulpitem... Po wykonaniu ALT+TAB znalazłam je :D

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.