Resultset.last() Problem

RelaX

Aktives Mitglied
Hallo alle miteinander.

Ich hab mal wieder ein dickes fettes Problem und bin fast schon am ausflippen.

Java:
CallableStatement cStmt = MySQL.connection.prepareCall("CALL ladeAromaBildListe(?,?,?,?)");

Die ? werden natürlich ausgefüllt, sind hier aber der Übersichthalber fehlend.

ResultSet rs = cStmt.executeQuery();
ResultSetMetaData md = rs.getMetaData();
rs.last(); <--- Hier kommt der Fehler!!
int groesse = rs.getRow();
System.out.println("Größe: " +groesse);
rs.beforeFirst();

Wenn die Abfrage kein Ergebnis liefert bzw. die Datenbank keine einträge findet, dann kommt dieser Fehler:

Exception in thread "Thread-2" java.lang.NullPointerException
at com.mysql.jdbc.ResultSetImpl.last(ResultSetImpl.java:6773)
at SQL.MySQLAromaBild.ladeAromaBildListe(MySQLAromaBild.java:105)
at SQL.MySQLAromaBild.ladeAromaBilder(MySQLAromaBild.java:36)
at GUIBilderSidebar.run(GUIBilderSidebar.java:87)
at java.lang.Thread.run(Unknown Source)

Das Gute daran ist eben dass wenn es Datensätze gibt das ganze soweit funktioniert. Jetzt würde ich ja an mir zweifeln aber in einer anderen Klasse funktioniert das auch OHNE das ein Ergebnis vorhanden ist bzw. Datensätze gefunden wurden.

Ich bin am verzweifeln und bitte um Hilfe.
 
V

vanny

Gast
[DUKE]
Moves the cursor to the last row in this ResultSet object.[/DUKE]

Wenn dein Resultset keine Einträge hat, dann wirds wohl schwer mit Cursor moven ^^

Wirste wohl prüfen müssen, ob was drinn is.

Gruß Vanny
 

RelaX

Aktives Mitglied
Vanny danke dir für die Antwort.

Ja das versuch ich gerade. Mich stört es eben wirklich nur richtig extrem weil es ja in einem anderen Thread funktioniert. Genau auf die selbe Art und Weise.

wenn ich nun rs.next() aufrufe dann bekomme ich auch eine exception.

Resultset is from Update. No Data.

Eine Idee woran das liegen könnte?
 
V

vanny

Gast
naja, wenn rs.last() ne nullpointer schmeisst, kannste ja auf null prüfen oder missversteh ich da was ?
 

RelaX

Aktives Mitglied
ja eigentlich.. das problem ist jetzt aber das ich eine Exception nur alleine schon bei rs.next() bekomme.

Also ich hab jetzt wirklich schon viel Programmiert aber das mit dem Resultset nervt mich so langsam aber sicher.

if(rs == null) {

}

funktioniert auch nicht. Und wenn ich es anspreche bekomm ich eine Exception.

Is From Update NO Data..
 
V

vanny

Gast
Du bekommst also beim last() ne NPE und bei next() noData-Error (richtig?)
geht nicht einfach
Code:
if(rs.last()!=null)
?
 
N

nillehammer

Gast
Habe selbst noch nie mit CallableStatement gearbeitet, aber
Code:
Resultset is from [B]Update[/B]. No Data.
sieht danach aus, als wenn die Stored Procedure gar kein ResultSet liefert, sondern einen int (Anzahl upgedateter Rows). Wäre das denkbar? Dann müsstest Du statt execute() executeUpdate() benutzen.
 

RelaX

Aktives Mitglied
nillehammer. Hab nachgeschaut. Hab keinen Tippfehler drin. In der Stored Procedure steckt eine ganz normale Select-anweisung drin. aber.. mom.. Ach das kann es natürlich sein.

Okey ich bin blöd..

NilleHammer. Vielen Dank du hast mir sehr geholfen wieder licht ins dunkle zu bringen.

Ich hab in der Stored Procedure eine SELECT-Anweisung in einer SELECT-Anweisung und wenn diese keine Werte zurückliefert, was ja nicht sein kann im normalem Programm-Ablauf liefert die SELECT-Anweisung auch kein gültiges Resultset. AUCH kein leeres!

Super. Ich probiere das grad. Hab beim debuggen wohl nen Fehler eingebaut.. omg. ich werd verrückt... :-(
 
V

vanny

Gast
laut API

boolean execute()
ResultSet executeQuery()
int executeUpdate()

hmm...

[EDIT]ok dann gzi[/EDIT]
 

RelaX

Aktives Mitglied
Ja doch das war es also..

Vielen Dank. Das Problem hat sich dann jetzt auch in Luft aufgelöst.

Ein SELECT, indem ich über ein SELECT etwas abfrage und nichts gefunden wird, liefert auch kein gültiges Resultset.

SELECT * FROM tabelle WhERE bla IN(hier kein Ergebnis) liefert auch kein Ergebnis. bzw. ist das überhaupt eine Gültige abfrage? Wenn ja aber dann kein gültiges Ergebnis. Und deshalb Resultet is From Update. No Data.

SELECT *(Hier nichts gefunden) FROM tabelle WHERE bla IN(blablabla); Liefert zwar auch nichts ABER liefert ein gültiges Ergebnis?

Kann mir das jemand erklären?
 
N

nillehammer

Gast
Kann mir das jemand erklären?
Nich direkt, nur soviel, dass Sub-Selects meist durch JOINs abgebildet werden können. Da dürfte das Problem dann überhaupt nicht auftreten. Schau mal, ob das möglich ist.
 

RelaX

Aktives Mitglied
Ja Nillehammer da hast du natürlich recht. Möglich ist das. Stellt sich die Frage ob ein Join denn schneller ist als ein Select mit einer Select-unterabfrage.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
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 Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
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
B Geschlossenes ResultSet Datenbankprogrammierung 6
T ResultSet#next Ungültige Reihenfolge (DB2) Datenbankprogrammierung 5
T ResultSet schließen? Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
S ResultSet Datenbankprogrammierung 6
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
@ Like-Klausel; NPE bzw. leeres ResultSet Datenbankprogrammierung 4
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
B No ResultSet was produced Datenbankprogrammierung 2
S ResultSet erweitern ? Datenbankprogrammierung 4
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
R ResultSet liefert oracle.sql.TIMESTAMP, aber unbrauchbar Datenbankprogrammierung 9
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
RaoulDuke ResultSet - Wie arbeitet sowas intern Datenbankprogrammierung 2
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
G Für jede SQL-Abfrage eigenes Statement und ResultSet? Datenbankprogrammierung 3
T MAX und ResultSet#next Datenbankprogrammierung 10
R ResultSet zu bestimmtem DS navigieren Datenbankprogrammierung 4
S .leeres Resultset abfangen Datenbankprogrammierung 2
B ResultSet ohne Datenbank erstellen Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben