ResultSet.last() und die GUI friert ein

Kros

Mitglied
Hallo

Ich versuche seit Tagen herauszufinden wieso das Programm immer wieder bei der selben Aktion einfriert.

  • In einer GUI kann ich über ein JComboBox Tabellen aus der Datenbank wählen.
  • In einer JTable werden daraufhin die Daten der Datenbank Tabelle angezeigt.
  • Das Füllen der JTable läuft über eine TableModel.

Das ganze funktioniert auch, bis auf eine Situation, wenn der oberste Eintrag aus dem JComboBox gewählt wird, friert das ganze ein.

Mit einfrieren meine ich, dass keine Fehlermeldung auftritt, dass sich nichts mehr in der GUI anklicken lässt (auch nicht das X vom JFrame zum schlessen) und das Programm sich nur noch mittels 'Terminate' in Eclipse schliessen lässt.

Den Ort des Verbrechens habe ich mittels sysout mal eingegrenzt: Das Problem scheint bei der Zeile 18 aufzutreten.

Java:
public ResultSet executeSelect(String query) {
		this.qrySelect = query;
		System.out.println("Neuer Eintrag in der JComboBox gewählt -> SQL : "+query);
				
		try {
			stmt = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_UPDATABLE);

			if (stmt.execute(query)) {
				rs = stmt.getResultSet();
				rsMeta = rs.getMetaData();
				columnCount = rsMeta.getColumnCount();
				
				// Zeilenanzahl
				
				System.out.println("rs.last() wird gestartet --> DBHanlder.executeSelect()");
				try {
					rs.last(); // FIX funktioniert nicht bei der Wahl des Obersten Eintrags in der CobmoBox
					System.out.println("rs.last() hat funktioniert --> DBHanlder.executeSelect()");
				} catch (Exception e) {
					System.out.println("rs.last() ist fehlgeschlagen --> DBHanlder.executeSelect()");
					e.printStackTrace();
				}
				
				rowCount = rs.getRow();
				rs.beforeFirst();
				
			} else
				rs = null;
		} catch (SQLException e) {
			System.out.println("Fehler bei der Datenübergabe von der Datenbank in das ResultSet.");
			e.printStackTrace();
		}

		return rs;
	}

Die Ausgabe in der Konsole sieht wie folgt aus:

Java:
Neuer Eintrag in der JComboBox gewählt -> SQL : SELECT * FROM APP.TBLADRESSE
rs.last() wird gestartet --> DBHanlder.executeSelect()
rs.last() hat funktioniert --> DBHanlder.executeSelect()
Neuer Eintrag in der JComboBox gewählt -> SQL : SELECT * FROM APP.TBLINSTITUTION
rs.last() wird gestartet --> DBHanlder.executeSelect()
rs.last() hat funktioniert --> DBHanlder.executeSelect()
Neuer Eintrag in der JComboBox gewählt -> SQL : SELECT * FROM APP.TBLMATERIAL
rs.last() wird gestartet --> DBHanlder.executeSelect()
rs.last() hat funktioniert --> DBHanlder.executeSelect()
Neuer Eintrag in der JComboBox gewählt -> SQL : SELECT * FROM APP.TBLADRESSE
rs.last() wird gestartet --> DBHanlder.executeSelect()

Der erste Eintrag wird biem Starten des JFrame gesetzt. Wenn ich nun andere Einträge aus der JComboBox auswähle klappt alles. Sobald ich aber wider den ersten Eintrag auswähle, friert es ein.

Hat da jemand eine Idee? Ich gehe davon aus, dass es an rs.last() liegt. Ich weiss aber nicht wo ich noch suchen muss, oder welcher Codeschnippsel noch weiterhelfen könnte.

Grüsse Kris
 

njans

Top Contributor
Ohne großartig in deinen Code geguckt zu haben:
Generell friert dir die GUI ein, wenn der EDT damit beschäftigt ist, Code auszuführen. D.h. du solltest den Krams mit dem ResultSet in einen eigenen Thread auslagern.
 

Kros

Mitglied
Hmm... hab mich noch nicht mit Threads beschäftigt, wie kann man einen Methodenaufruf in einen Thread auslagern, damit ich das mal Testen kann?

Allerdings bezweifle ich, dass dies die Lösung ist, da das Einfrieren nur dann auftritt, wenn der oberste Eintrag in der JComboBox gewählt wird. Bei allen anderen Einträgen funktioniert es. Auch beim ersten auswählen des obersten Eintrags (was ja automatisch beim erstellen geschieht) funktioniert es.

Hmmm...

EDIT Das mit dem Thread hat funktioniert. Kann man die Ursache irgendwie herausfinden? Dass heisst, wo im Code sich das Prog selbst beschäftigt?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N ResultSet auf Einträge überprüfen Java Basics - Anfänger-Themen 5
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
A Werte innerhalb von resultset vergleichen Java Basics - Anfänger-Themen 2
H Variablen Zeile aus einem ResultSet ausleesen Java Basics - Anfänger-Themen 7
P Brauche Hilfe bei ResultSet mit MySQL Java Basics - Anfänger-Themen 6
A ResultSet: vorheriges Element auslesen Java Basics - Anfänger-Themen 10
1 ResultSet in Schleife "befüllen" Java Basics - Anfänger-Themen 4
K Methoden ResultSet als Methodenübergabewert kommt leer an Java Basics - Anfänger-Themen 0
S JTabel korrekt mit Datensätzen aus ResultSet füllen Java Basics - Anfänger-Themen 4
S Icons in JTable per ResultSet Java Basics - Anfänger-Themen 5
S ResultSet close() in funktion nich möglich. Java Basics - Anfänger-Themen 8
G ResultSet übergeben bzw. in andere Variable übernehmen Java Basics - Anfänger-Themen 6
J ResultSet.getStrin - doch kein String? oder wo liegt das Problem? Java Basics - Anfänger-Themen 3
A Erste Schritte Weiterverarbeitung Resultset Java Basics - Anfänger-Themen 12
R JDBC leeres ResultSet Problem Java Basics - Anfänger-Themen 2
S ResultSet in CSV speichern Java Basics - Anfänger-Themen 3
C Resultset.updateBinaryStream Java Basics - Anfänger-Themen 2
S mysql-connector-java-*.jar, MySql ResultSet - Alle ROWs ausgeben? Java Basics - Anfänger-Themen 3
M Frage zu ResultSet.next() Java Basics - Anfänger-Themen 7
S Resultset Closed (Mysql) Java Basics - Anfänger-Themen 5
C OOP JDBC: Ausgabe ResultSet nach Select Java Basics - Anfänger-Themen 3
G ResultSet SQLException Java Basics - Anfänger-Themen 11
K Problem mit ResultSet Java Basics - Anfänger-Themen 9
A Probleme mit dem ResultSet Java Basics - Anfänger-Themen 6
S bestimmtes Auslesen von Spalten eines ResultSet ? Java Basics - Anfänger-Themen 7
T ResultSet Exception Java Basics - Anfänger-Themen 2
M ResultSet Problem Java Basics - Anfänger-Themen 5
S aus Resultset JTabbedPane erzeugen Java Basics - Anfänger-Themen 5
G Frage zu ResultSet Java Basics - Anfänger-Themen 4
A "SQL : No resultSet was produced" ? Java Basics - Anfänger-Themen 7
G ResultSet & JTable Java Basics - Anfänger-Themen 4
K problem mit resultset und 2d-array Java Basics - Anfänger-Themen 3
G ResultSet übergeben Java Basics - Anfänger-Themen 2
K ResultSet öffnet sich garnicht erst Java Basics - Anfänger-Themen 9
M ResultSet Java Basics - Anfänger-Themen 4
M ResultSet als Objekt zurückgeben, wenn conn geschlossen? Java Basics - Anfänger-Themen 8
K ResultSet: Wie viele Rows beinhaltet es? Java Basics - Anfänger-Themen 6
A ResultSet Zeile als Objekt? Java Basics - Anfänger-Themen 10
G ResultSet getRow Java Basics - Anfänger-Themen 4
T Ganz schlimme Frage.:) ResultSet Java Basics - Anfänger-Themen 12
G ResultSet zurückgeben Java Basics - Anfänger-Themen 11
B Probleme bei ResultSet in einer While-Schleife Java Basics - Anfänger-Themen 2
M ResultSet klonen Java Basics - Anfänger-Themen 6
M ResultSet abfragen Java Basics - Anfänger-Themen 8
R In ResultSet Anzahl der Zeilen herausfinden? Java Basics - Anfänger-Themen 3
BadBat ArrayList<String> sort by last word Java Basics - Anfänger-Themen 8
M GregorianCalendar last month Java Basics - Anfänger-Themen 2
B Programm läuft mit 100% CPU-Last Java Basics - Anfänger-Themen 6
P Java erzeugt zu viel Last? Java Basics - Anfänger-Themen 15
A Datei einlesen führt zu 100% Last Java Basics - Anfänger-Themen 6
Baerdoc GUI "friert ein" Java Basics - Anfänger-Themen 4
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
K Java Applet friert Browser ein Java Basics - Anfänger-Themen 12
G UI friert bei Multithreading ein Java Basics - Anfänger-Themen 3
W JTable friert ein? Java Basics - Anfänger-Themen 13
cyro GUI friert wärend Programmdurchlauf ein. Java Basics - Anfänger-Themen 3
T neue Instanz von JFileChooser => applikation friert ein Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben