Sonderbehandlung wenn ResultSet leer ist

it-girl

Aktives Mitglied
Hallo zusammen,

ich möchte Daten aus meiner DB2 auslesen, was auch klappt.
Nur habe ich nun den Fall, dass manche Anfragen kein Ergebnis liefern, was nicht weiter schlimm ist, was ich aber gesondert behandeln möchte.
Also wenn das ResultSet Daten enthält, soll ein Object mit anderen Parametern erzeugt werden, als wenn das ResultSet leer ist.

Ich habe das mal so probiert:
Java:
rs = stmt.executeQuery("SELECT Spalte_1, Spalte_2"
	+ " FROM TABLE WHERE Spalte_3 = 1 AND Spalte_4 ="
	+ DataSetMemory.getWert()
	+ " AND Spalte_5 LIKE '%"
	+ value+ "%'");

if (rs.wasNull()) { // da kommt dann ein Fehler
	new WorkingInstruction(mainprocessNode, andereVariable, graph, hierarchy);
}

while (rs.next()) {
	//noch mehr Code
	new WorkingInstruction(businessNode, rs.getString("Spalte_2"), graph, hierarchy);
}

Das funktioniert aber so nicht. Ich bekomme immer den Fehler: "Ungültige Operation: wasNull() wurde ohne abgerufene Daten aufgerufen."

Es müsste sowas wie ResultSet.isEmpty() oder so geben...

Hab jemand eine Idee, wie ich das elegant lösen kann?

Vielen Dank schon mal im Voraus :)

IT-girl
 
S

SlaterB

Gast
if (!rs.next())
;)

edit:
ok, man muss schon bisschen aufpassen, dass nicht die Schleife dann gleich zum zweiten Eintrag wechselt,
vielleicht doch lieber nur Schleife und dort Anzahl zählen zw. eine boolean Variable in der Schleife auf true setzen
 
S

SlaterB

Gast
hoffentlich meinen wichtigen edit gesehen, da nicht erwähnt bietet mir das die Möglichkeit noch einen weiteren Post zu sammeln,
ich setzte dann vorerst auch auf 'Erledigt'
 

it-girl

Aktives Mitglied
@ThreadPool: Danke, aber das funktioniert bei mir leider nicht (Fehlermeldung: "
Code:
Diese Methode darf nur für ResultSet-Objekte aufgerufen werden, die verschiebbar
Code:
sind (Typ TYPE_SCROLL_SENSITIVE oder TYPE_SCROLL_INSENSITIVE).
")

@SlaterB: Wenn ich das mit dem !rs.next() mache, fehlt dann wie du richtig sagst, der erste Eintrag. Wie kann ich das umgehen? Ich habe das, was du dann geschrieben hast ("vielleicht doch lieber nur Schleife und dort Anzahl zählen zw. eine boolean Variable in der Schleife auf true setzen"), nicht so ganz verstanden...

Vielen Dank schon mal!
 
S

SlaterB

Gast
sobald die while-Schleife auch nur einmal durchlaufen wird ist klar dass das Set nicht leer ist, anderenfalls schon,
diese Information kannst du offensichtlich konversieren, indem du in der Schleife irgendwas machst, was danach noch feststellbar ist,
 

Landei

Top Contributor
Erst den Normalfall abhandeln, dann den Spezialfall "leeres Set":

Java:
boolean isEmpty = true;
while (rs.next()) {
   normalFall();
   isEmpty = false;
}
if (isEmpty) {
   spezialFall();
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
B Distanz berechnen, wenn ich Longitude und Latidute habe? Datenbankprogrammierung 16
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
F Tabellen automatisch erstellen wenn sie nicht existieren Datenbankprogrammierung 6
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
Kandum MySQL Anzahl gefundener Datensätze bleibt gleich, auch wenn mehr existieren und ausgegeben werden Datenbankprogrammierung 3
S MySQL Abfrage: Wenn Feld leer, alles anzeigen Datenbankprogrammierung 5
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
H Derby/JavaDB SQLException wenn die Datenbank in eine Jar gepackt wurde. Datenbankprogrammierung 6
W MySQL Rückgabewert wenn Wert nicht in DA Datenbankprogrammierung 7
S Hibernate - Abgeleitete Klassen werden nicht angezeigt wenn... Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
Saxony Benachrichtigung wenn sich Datenbank ändert Datenbankprogrammierung 10
P HELP! Tabelle sortieren wenn man auf Spaltennamen klickt SQL Datenbankprogrammierung 2
J kompilierung klappt nur wenn main vorhanden ist Datenbankprogrammierung 11
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
A Was passiert wenn eine Datenbankverbindung unterbricht Datenbankprogrammierung 7
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
D MySQL ResultSet als Stream weiter geben Datenbankprogrammierung 9
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
T Exception ResultSet Datenbankprogrammierung 7
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
S ResultSet Datenbankprogrammierung 2
A MySQL ResultSet.updateBytes schlägt fehl Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
trash ResultSet Syntax Fehler Datenbankprogrammierung 11
ARadauer JDBC ResultSet schließen? Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
J jdbc ResultSet types Datenbankprogrammierung 5
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
F ResultSet to String[] Datenbankprogrammierung 3
E ResultSet in HashMap Datenbankprogrammierung 8
K Tabelle mit resultset refreshen? Datenbankprogrammierung 4
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
T ResultSet initialisieren Datenbankprogrammierung 2
C kein Resultset Datenbankprogrammierung 2
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
T ResultSet-Inhalt in Arrays schreiben Datenbankprogrammierung 3
S ResultSet variabel auslesen Datenbankprogrammierung 4
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
A Leeres ResultSet mit H2 unter Vista Datenbankprogrammierung 3
A Warum ist mein ResultSet leer? Datenbankprogrammierung 5
S ResultSet closed Datenbankprogrammierung 2
Z ResultSet mit einer anderen Datenquelle Datenbankprogrammierung 7
O Spaltenname aus Resultset Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
E ResultSet vergisst Reihe? Datenbankprogrammierung 2
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
F ResultSet refresh moeglich? Datenbankprogrammierung 3
S ResultSet enthält keine Daten Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben