2016-03-23 9 views
0

meinen Code in jdbc Java statt meiner Parameter-String @PO bekam (ich habe eine Verbindung vorher):Ich habe

private String loginPasswordRequest = "SELECT * FROM animateurs WHERE email =?"; 

public static ResultSet SendRequest(String request, String parameter)throws SQLException{ 
    Connection con = ConnectionToDatabase(); 
    PreparedStatement stmt = con.prepareStatement(request); 
    stmt.setString(1, "[email protected]"); //parameter 

    ResultSet result = stmt.executeQuery(); 
    return result; 
} 

wenn ich ausführen die Anfrage i folgende Anfrage haben:

SELECT * FROM animateurs WHERE email [email protected]  

dies ist die Anfrage von SQLServer ich weiß nicht, warum mein Parameter nicht angezeigt wird. Ich muss nur eine Auswahl mit einem Parameter erstellen, aber es funktioniert nicht.

+0

Sie lecken ein 'Statement' und eine' Connection', um dort ein 'ResultSet' zurückzugeben, sind Sie sicher, dass das nicht funktioniert? t einen Platzhalter angeben? Gibt es einen Eintrag in der "animateurs" -Tabelle, in dem die "email" mit Ihrem Parameter übereinstimmt? Funktioniert die Abfrage vom Abfrage-Manager? –

+0

Ich habe ein Ergebnis auf Sql Server Management Studio. Das Problem ist der Parameter @PO wird anstelle meiner tatsächlichen Parameter Rigth vor der Interpretation ausgeführt – SoulM

+1

Definieren "funktioniert nicht": erhalten Sie eine Ausnahme (wenn ja, welche Ausnahme), erhalten Sie ein leeres Ergebnis oder etwas anderes ? Es sieht so aus, als ob der SQL Server-Treiber einige Vorverarbeitungen vornimmt und Positionsparameter durch benannte Parameter ersetzt (zB mit '@ P0' für den ersten Positionsparameter). Ich gehe davon aus, dass dies funktioniert (abgesehen davon, dass Sie hier Ressourcen verlieren), da SQL Server die Parameterwerte separat sendet. –

Antwort

0

Ich fand es, das Ergebnis war überhaupt nicht leer. Ich musste eine Weile auf Ergebnis.next machen, auch wenn ich ein Ergebnis in meinem Result Set habe

+0

Ich empfehle dringend, dass Sie einige Tutorials auf JDBC folgen und lesen Sie die API-Dokumentation, weil 'next()' auf einer Ergebnismenge (immer) aufgerufen werden muss wirklich die Grundlagen von JDBC. –

Verwandte Themen