executeQuery liefert null zurück

Pokersims94

Mitglied
Hallo liebes Java Forum,

ich muss für die Schule eine kleine Dating Seite programmieren dabei kriegt das Servlet die daten von der Login.jsp und gibt diese Daten dann an eine Java Klass eweiter die dies auswerten soll. In dme Fall soll es das eigegebene Passwort mit dem Passwort aus der Datenbank vergleichen allerdings kriege ich, anstatt das Passwort aus der Datenbank, nur null zurück.

Der Login/Nick: TestNick
Passwort: TestPW

Hier einmal mein Code:

Java:
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

/**
 *
 * @author Christian
 */
public class GeekDates {

    //Variabeln
    String PasswortDB;
    private static Connection con;
    private static Statement stmt;
    private static String sql;
    String login;

    
    //Datenbankverbindung herstellen
    public static void connect() {
        con = null;
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/",
                    "SA", "");
            stmt = con.createStatement();
        } catch (Exception e) {
            System.err.println("connect kann keine Verbindung zur Datenbank aufbauen: " + e);
        }
    }

    //Datenbankabfrage
    public void Login (String Login) {
        connect();
        login = Login;
        //Ab hier bekomme ich die NullPointerException
        try {

            Statement stmt1 = con.createStatement();
            ResultSet rs = stmt1.executeQuery("Select passwort from geekdatesdatenbank where Loginname = '" + Login + "'");

            PasswortDB = rs.toString();

        } catch (SQLException e) {
            System.out.println("Fehler: " + e);
        }
    }
    
    //Vergleicht die Passwörter und gibt dann true oder false zurück ans Servlet
    public boolean CheckPasswort(String passwort) {
        if (passwort.equals(PasswortDB)) {
            return true;
        }
        return false;
    }
}

Danke schon mal für eure Hilfe =)

Mit freundlichen Grüßen,

Pokersims94 / Chris
 
'liefert null zurück' und NullPointerException sind arg unterschiedliches

in welcher Zeile kommt die Exception? prüfe welche Objekte null sind, etwa Connection con,
läuft connect() fehlerfrei durch?

> rs.toString();
wäre letztlich eh falsch, du musst next() aufrufen und die erste Spalte abfragen, siehe Tutorials zu ResultSet

---

Methoden, Variablen, Parameter klein schreiben,
auf ungenutzen Code wie das erzeugte stmt-Objekt oder login/ Login achten
 
Ok danke =)

Edit: Ich habe jetzt noch mal alles nachgeschaut und so wie es aussieht liegt es an meiner Datenbank selbst also der Server den ich gestartet habe scheint wohl irgendwie geblockt zu werden von Windows =(

Grüße,

Chris
 
Zuletzt bearbeitet:
Kann man aus dem PreparedStatement auch einen String machen bzw. mit getString() den Inhalt in einem String speichern?

Danke für die Antworten und Grüße,

Chris
 
PreparedStatement sollst du absenden, einen String brauchst du daraus kaum,
obwohl es durchaus manchmal interessant wäre, das entstehende SQL zu sehen, was nicht gut geht,

als Ergebnis kommt ein ResultSet genau wie zuvor, das musst du erstmal kennenlernen, getString(..) gibt es da aber, ja
 

Neue Themen


Zurück
Oben