vergleichende Datenbankabfrage

Status
Nicht offen für weitere Antworten.

copper

Mitglied
Hi ich möchte mit dieser DB Anfrage herausfinden ob eine Zeile besteht, welche zu diesen werten passt.
Falls ja also falls abrf = true, dann sollen in der Aufrufendne klasse bestimmt operationne ausgeführt werden.
Das Problem ist, dass abfrage immer true ist also auch wenn es keine PageID z.B. 100+1 gibt bzw. wenn es so eine gibt aber keine zugehörige zeit, welche kleiner ist als die zu vergeleichende.

Code:
public boolean getNachfolger(int pageID, java.util.Date zeitvoreinstellung){
         try{
             stmt = con.createStatement();
             String zeitvoreinst = "'"+zeitvoreinstellung+"'";
             boolean abfr =  stmt.execute("(SELECT * FROM sendedaten WHERE Zeitvoreinstellung <" +zeitvoreinst+"AND PageID ="+(pageID+1)+")");
             stmt.close();
             return abfr;             
         }
         catch(Exception e){
              System.out.println(e);
         }
         return false;
     }

Meine Fragen:
Ist diese java Methode dafür geeignet?
Ist die sql Anweisung korrekt? Eine Exception gibt es nicht.
Wie kann man so eine abfrage gestallten?

thx für die Antworten
 

Mag1c

Top Contributor
Hi,

versuche es mal mit

Code:
ResultSet rset =  stmt.executeQuery(...);
boolean abfr = rset.first()

Gruß
Mag1c
 

copper

Mitglied
Leider ist das Resultset leer. Bei jedem durchlauf.
Was sehr komisch ist.
Denn mit der ersten Methode ohne resultset. Wurde mir immer ein true zurückgegeben.

Jetzt bleibt das ResultSet immer leer. und ich bekomme logischerweise eine nullpointer exception


mhh

bin für ratschläge dankbar
 

Mag1c

Top Contributor
Die Methode executeQuery(...) ist für normale Abfragen gedacht, also genau richtig für dich.
Wenn das ResultSet leer ist, dann wurde kein Ergebnis gefunden. Wenn ein Ergebnis
kommen müsste, dann stimmt was mit der Query nicht. Überprüfe die Query am besten
in einem SQL-Tool direkt auf der Datenbank (z.B. QuantumDB für Eclipse).

Gruß
Mag1c
 

Bleiglanz

Gesperrter Benutzer
Denn mit der ersten Methode ohne resultset. Wurde mir immer ein true zurückgegeben.
war ja richtig, schau halt mal in die API: das true heisst nur, dass das Ergebnis ein ResultSet war (eben ein leeres)

du kannst nicht ein Datumsobjekt mit toString() zu einem String verwandeln und hoffen, dass < auf der DB das richtig macht

ist "01.12.1997" < "01-12-1997"?


schau in die Doku zu deiner DB bei den Datumsfunktionen und verwende ein preparedStatement mit setDate, damit das Datum im richtigen Format in den SQL-String eingefügt wird
 

copper

Mitglied
Jo klar,
ist natürlich richtig, dass sich ein String und eine Zeit nicht einfach so vergl. lassen. Ich war der Annahme, dass der String (00:00:01 oder so) welcher an die DB übergeben wird als Zeit interpretier wird.
Sonst ist die Abfrage für mysql DB so OK. Hab es auch mit phpmyadmin getestet.

hier nochmal der Funktionierende Quellcode:
Code:
public boolean getNachfolger(int pageID,java.sql.Time zeitvoreinstellung){
            try{
                
                prestmt = con.prepareStatement("SELECT * FROM sendedaten WHERE Zeitvoreinstellung <= ? AND PageID = ?");
                prestmt.setTime(1,zeitvoreinstellung);
                pageID = pageID +1;
                prestmt.setInt(2,pageID);
                rsnachfolger = prestmt.executeQuery();
                return rsnachfolger.first();             
            }
            catch(Exception e){
                System.out.println(e);
            }
            return false;
}

thx man
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Datenbankabfrage mit loop Datenbankprogrammierung 17
N MySQL Datenbankabfrage oder Arraylist? Datenbankprogrammierung 2
J Datenbankabfrage / Teilmengen Datenbankprogrammierung 2
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
S MySQL Datenbankabfrage mit Eingabe aus Textfeld vergleichen Datenbankprogrammierung 4
C Modellierung Datenbankabfrage Datenbankprogrammierung 1
W SQL-Statement Datenbankabfrage über Yahoo Datenbankprogrammierung 0
B Fehlerhafte Datenbankabfrage Datenbankprogrammierung 3
H Oracle Datenbankabfrage ausgeben Datenbankprogrammierung 13
E MySQL Anzeige Datenbankabfrage in Textfeld o.ä. Datenbankprogrammierung 34
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
Y JDBC - Datenbankabfrage Webserver Datenbankprogrammierung 4
E H2 - Datenbankabfrage gibt NULL aus? Datenbankprogrammierung 4
H Einfache Datenbankabfrage Datenbankprogrammierung 14
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
F Problem mit Datenbankabfrage Datenbankprogrammierung 7
M Problem bei einfacher Datenbankabfrage Datenbankprogrammierung 7
W Problem mit Datenbankabfrage Datenbankprogrammierung 3
S Datenbankabfrage mit Applet Datenbankprogrammierung 13
A Datenbankabfrage mit KeyListener Datenbankprogrammierung 5
C Rückgabetyp einer Datenbankabfrage Datenbankprogrammierung 12
V Datenbankabfrage in einem Textfeld ausgeben Datenbankprogrammierung 3
L einfache Datenbankabfrage ohne erstes Element Datenbankprogrammierung 2
E Nochmal eine Datenbankabfrage Frage :-o (JOIN oder so) Datenbankprogrammierung 4
R NUllPointerException bei Datenbankabfrage Datenbankprogrammierung 4
A SQL Datenbankabfrage in Array speichern Datenbankprogrammierung 3
P Datenbankabfrage MYSQL aus Applet heraus Datenbankprogrammierung 6
D Datenbankabfrage will nicht funktionieren Datenbankprogrammierung 5
G datenbankabfrage Datenbankprogrammierung 4
A datenbankabfrage in sql mit java Datenbankprogrammierung 32
T Nochmal Datenbankabfrage Datenbankprogrammierung 6

Ähnliche Java Themen


Oben