Hallo Xeon
Du schreibst, dass PHP on Datenbankabfragen auskommt, dass ist insofern falsch, da MySQL schlussendlich genau die gleichen Schritte ausführen muss, um die Anzahl der Zeilen zu erhalten, welche ein Query zurückgibt. Was aber sein kann, und wass ich aufgrund von Deinem Link vermuten würde, dass MySQL bei jedem Query dass es ausführt die Anzahl der Zurückggebenen Zeilen ermittelt, d.h. alle Zeilen schonmal von dem Tablespace liesst und zwischenspeichert. Dies ist aber sicherlich ein ziemlicher Overhead, wenn du ja nur die Anzahl der Zeilen brauchst! Deshalb macht es keinen Sinn ein Query vorzubereiten, welches gar nicht gebraucht wird. Und wenn ich dich richtig verstanden habe, brauchst Du ja nur die Anzahl der Zeilen, nicht deren Inhalt. Und dazu ist nun mal ein Count-Query die intelligentere und gebräuchlicher Lösung, da die Datenbank die Art und Weise, wie es auf die Daten zugreifft hinsichtlich dem Verwendugszweck (nämlich nur Zählen) optimieren kann. Wie gesagt, wenn Du willst kann ich Dir dies noch etwas detailierter erklären, jedoch nur anhande von DB2 und MSQL-Server.
Wie gesagt, Java unterstützt diese Funktion nicht da sie MySQL-Spezifisch ist und nicht über SQL funktioniert. Wenn Du aber unbedingt etwas brauchst, wass die SQL-Funktionen auf Java-Methoden wrappt, so gibt es dafür meines Wissen EJB.
Deine Lösung mit rs.last() ist übrigens so etwa die schlechteste, die Du machen kannst Wie schon gesagt, machs wie netmeister es vorschlug:
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuey("SELECT Count(*) FROM blablabla WHERE blabla");
int Count = rs.getInt(1);
Gruss
jaBernet