Null als return obwohl datensatz existiert

Icke

Mitglied
Guten Tag.
Ich schreibe gerade eine Applikation fürs Handy mit einer SQL Datenbank. Ich habe einen Datensatz in die Datenbank geschrieben und wollte nun den Login gestalten. Dazu wollte ich den Datensatz mit Testdaten erstmal vergleichen. Hier ist mein Code:

Login überprüfen:
Java:
//Logindaten prüfen hinzufügen
		@WebMethod(operationName ="benutzerlogin_pruefen")
		/**
		 * @param bnummer Benutzername
		 * @param pw Passwort
		 **/
		public boolean benutzerlogin_pruefen(
				@WebParam(name ="benutzername") String bname,
				@WebParam(name ="passwort") String pw)
		
		{		
		// Testen der Datenbankanbindung
		DatabaseConnection.connectdb();
		
			// Benutzername in der Datenbank suchen
		
		    String bname1 = "SELECT BENUTZERNAME"
				+"FROM BENUTZER"
				+"WHERE BENUTZERNAME='"+bname+"'";
		   
		    ResultSet bname2 = DatabaseConnection.selectdb(bname1);
		    System.out.print(""+bname2+"");
		    //Passwort und Benutzerdaten vergleichen
		    
			  String pwtrue = "SELECT passwort"
				  			+"FROM passwort"
				  			+"WHERE benutzername='"+bname+"'";
			  
			  ResultSet pwdb = DatabaseConnection.selectdb(pwtrue);
			  
			// Schauen ob Benutzer existiert  
		    if (bname2==null){   	
		   System.out.println("Benutzername existiert nicht!"); 	
			 return false; }
		    // Schauen ob Passwort übereinstimmt
		    else if (pwtrue!=pw){
			System.out.println("Passwort ist falsch!");
		return false;
		
		 // Falls Benutzer und Passwort existrieren und übereinstimmen
		}else{ 
			return true;
			
		
		    }
		}


Datenbankverbindung ( select befehl )
Java:
    // Datensätze aus der Datenbank holen
    public static ResultSet selectdb(String str) {
        try {
            stmt.execute(str);
            return stmt.getResultSet();
        } catch (SQLException e2) {
            System.out.print("Fehler!");
            return null;
        }
    }

Testdaten:
Java:
public class test {
	
	public static void main(String[] args) { 
		
		String bname="Dennis";
		String pw="MCIMMA";
		boolean status;
		scws Dennis = new scws();
		status = Dennis.benutzerlogin_pruefen(bname, pw);
		if (status)
			System.out.print("Sind gleich");
		else
			System.out.print("sind nicht gleich");
		
}
}


Fehlerausgabe:
Fehler!nullFehler!Benutzername existiert nicht!
sind nicht gleich

Also der Datensatz mit Dennis und dem passwort ist 100% in der datenbank und eine verbindung zur datenbank besteht auch. Jedoch was mache ich falsch, dass ein null zurück kommt, obwohl ja Dennis ( bname ) drin steht?!? Wäre für jede Hilfe dankbar.

Frohe Pfingstage
 

SleepProgger

Mitglied
Änder doch einfach mal den DatenbankAnfrageteil wie folgt:

Java:
 public static ResultSet selectdb(String str) {
        try {
            stmt.execute(str);
            return stmt.getResultSet();
        } catch (SQLException e2) {
            System.out.print("Fehler! " + e2.getMessage());
            return null;
        }
    }

Das könnte dir weiter helfen ;)

Des weiteren fehlen dir ein paar Lehrzeichen in deinen Sql-Statements.
Vileicht ist das schon das Problem ?
 

r.w.

Bekanntes Mitglied
Java:
    // Datensätze aus der Datenbank holen
    public static ResultSet selectdb(String str) {
        try {
            stmt.execute(str);
            return stmt.getResultSet();
        } catch (SQLException e2) {
            System.out.print("Fehler!");
            return null;
        }
    }
Wo wird bei Dir stmt initialisiert?

VG und ein schöne WE,
ROlf
 

Icke

Mitglied
Das stmt initialisiere ich in der databseconnection
Java:
public class DatabaseConnection {

    public static Statement stmt = null;
    public static ResultSet rs = null;

    // Verbindung zur Datenbank wird aufgebaut
    public static void connectdb() {

Ich habe den Quellcode nochmals umgeschrieben für Benutzer_login und erhalte jetzt immer ein "sind gleich" .. ich suche jetzt nur noch datensätze wo benutzer und das passwort drinne stehen. jedoch, wie gesagt, kommt immer "true" raus :/

Java:
		//Logindaten prüfen hinzufügen
		@WebMethod(operationName ="benutzerlogin_pruefen")
		/**
		 * @param bnummer Benutzername
		 * @param pw Passwort
		 **/
		public boolean benutzerlogin_pruefen(
				@WebParam(name ="benutzername") String bname,
				@WebParam(name ="passwort") String pw)
		
		{		
		// Testen der Datenbankanbindung
		DatabaseConnection.connectdb();
		    
			  String pwtrue = "SELECT BENUTZERNAME FROM BENUTZER WHERE BENUTZERNAME='"+bname+"'AND PASSWORT='"+pw+"'";
			  
			  ResultSet pwdb = DatabaseConnection.selectdb(pwtrue);
			  
			// Benutzer oder Passwort existieren nicht ( Kein Datensatz wird zurückgegeben )
		    if (pwdb==null){
			System.out.println("Falsche Eingabe");
		return false;
		
		 // Falls Benutzer und Passwort existrieren und übereinstimmen
		}else{ 
			return true;
			
		
		    }
		}
 

r.w.

Bekanntes Mitglied
Wenn pwdb nicht null ist, heißt das nicht, dass Benutzer und Passwort übereinstimmen,
sondern nur, dass ein gültiger ResultSet zurückgeliefert wurde. Dieser kann aber dennoch
leer sein. Du musst in also auch noch prüfen ob ein gültiger Datensatz im ResultSet enthalten ist.

VG ROlf
 
G

Gelöschtes Mitglied 5909

Gast
poste den stacktrace (e.printStackTrace), ist garantiert ne NPE

Java:
    public static ResultSet selectdb(String str) {
        try {
            stm = connection.createStatement();
            stmt.execute(str);
            return stmt.getResultSet();
        } catch (SQLException e2) {
            e.printStackTrace();
            return null;
        }
    }

Statement und ResultSet close nicht vergessen (wenn du mit dem verarbeiten fertig bist)
 
Zuletzt bearbeitet von einem Moderator:

Icke

Mitglied
Wie prüfe ich denn, ob ein gültiger Resultset zurückgegeben wird? Sry stehe gerade aufn Schlauch :(
 
Zuletzt bearbeitet:

Icke

Mitglied
Also ich bekomme wenn ich richtige daten angebe, diese auch zurück und es ist true. wenn ich falsche daten angebe , bekomme ich bei der ausgabe keine daten ( so wie es richtig ist ) jedoch bekomme ich auch ein true zurück, wobei es ja false sein müsste... :/
 

SleepProgger

Mitglied
Vlt. funktioniert "isBeforeFirst()" ?

true if the cursor is before the first row; false if the cursor is at any other position or the result set contains no rows

Ich verstehe allerdings nicht ganz warum das mit next nicht funktioniert:
next return
true if the new current row is valid; false if there are no more rows



Ist leider schon ein wenig her das ich mit Java im DB Umfeld tätig war.
 

Icke

Mitglied
Wenn ich das mit next mache, dann meckert er bei den Klammern
Java:
		{		
		// Testen der Datenbankanbindung
		DatabaseConnection.connectdb();
			 String Gefunden = "SELECT BENUTZERNAME,PASSWORT FROM BENUTZER WHERE BENUTZERNAME='"+bname+"'AND PASSWORT='"+pw+"'";
		
			  ResultSet did = DatabaseConnection.selectdb(Gefunden);
			// Benutzer oder Passwort existieren nicht ( Kein Datensatz wird zurückgegeben )
			  try {
			  if (did.next()) {
			
		return false;
		 // Falls Benutzer und Passwort existieren und übereinstimmen
		}else{ 
			return true;
		 }catch (SQLException e) {
			    // TODO Auto-generated catch block
			    e.printStackTrace();
			   }
			  }
		}
 

Michael...

Top Contributor
Wenn ich das mit next mache, dann meckert er bei den Klammern
Weil die nicht stimmt. try und catch sind an völlig falscher Stelle.
Ausserdem soll ja nur zurückgegeben werden ob User und Passwort Kombination vorhanden sind.
Da würde folgendes reichen. (ResultSet#next() liefert ja bereits ein boolean)
Java:
return resultSet.next();
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Exception || return null Java Basics - Anfänger-Themen 2
J return wert ist null :( Java Basics - Anfänger-Themen 16
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
I Grundsatzfrage: Belegt eine Referenz auf 'null' RAM, und wenn ja - wieviel ;-) ? Java Basics - Anfänger-Themen 5
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
P Buffer und null Java Basics - Anfänger-Themen 3
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
N null in String replacen Java Basics - Anfänger-Themen 16
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
K Bufread.readLine())!= null wie beenden? Java Basics - Anfänger-Themen 4
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
T ComboBox getValue() zeigt null Java Basics - Anfänger-Themen 7
J null exception Array Java Basics - Anfänger-Themen 5
tobikoch String x= null Bedeutung Java Basics - Anfänger-Themen 9
C NumberFormatException: null ohne Ausnahmebehandlung stoppen Java Basics - Anfänger-Themen 7
J Int wird als Null ausgegeben Java Basics - Anfänger-Themen 8
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
B MySQL (jdbc) -> connection liefert NULL Java Basics - Anfänger-Themen 3
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
O JavaArray Null Java Basics - Anfänger-Themen 3
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
D Best Practice Konvention - Klassenmembers auf null setzen? Java Basics - Anfänger-Themen 2
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
Orkanson Null Pointer Expception Java Basics - Anfänger-Themen 3
M set Integer bzw. set null mit SQL DB Java Basics - Anfänger-Themen 9
I Polymorphie Null Objekt Java Basics - Anfänger-Themen 3
O Datentypen Integer mit führender Null Java Basics - Anfänger-Themen 13
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
J Einfache Frage zu "null" Java Basics - Anfänger-Themen 2
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
C Null Pointer Exception Java Basics - Anfänger-Themen 10
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
G Null Pointer Exception Java Basics - Anfänger-Themen 4
R Gleitkommazahlen ohne führende Null Java Basics - Anfänger-Themen 10
M array = null Java Basics - Anfänger-Themen 2
F String equals NULL Problem Java Basics - Anfänger-Themen 4
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
R Property Value als null setzen Java Basics - Anfänger-Themen 1
D Arrays.toString spuckt null aus? Java Basics - Anfänger-Themen 3
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
F Erste Schritte Unterschied: Array "leer" / "null" Java Basics - Anfänger-Themen 3
J Fehlerhafte Ausgabe "null" Java Basics - Anfänger-Themen 2
G Threads zum Thema Threads??? null Ahnung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
J Einfach verkettet List: Ausgabe ohne null Java Basics - Anfänger-Themen 11
D OOP Warum bekomme ich eine Null-Pointer Exception!!? :( Java Basics - Anfänger-Themen 4
D Null Ausgabe obwohl wert zugewiesen Java Basics - Anfänger-Themen 5
J Alias null Java Basics - Anfänger-Themen 4
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
A null-Überprüfung Java Basics - Anfänger-Themen 24
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
D Methoden Implementieren von einer Zoomfunktion innerhalb eines JPanels mit null-Layoutmanager Java Basics - Anfänger-Themen 1
A Null Pointer Exception in Liste Java Basics - Anfänger-Themen 11
T Null Java Basics - Anfänger-Themen 3
X Array trotz Befüllung "null" Java Basics - Anfänger-Themen 11
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
M Kann einen Array nicht füllen, im Nachhinein nur "null"-Werte Java Basics - Anfänger-Themen 11
J Verschränkte Rekursion und null Ahnung... Java Basics - Anfänger-Themen 0
X Vererbung Setzen auf Null bei Subklassen Java Basics - Anfänger-Themen 2
S Rückgabewert null in Methode mit Thread Java Basics - Anfänger-Themen 2
C MIME-Type null Java Basics - Anfänger-Themen 4
T Null Pointer Exception Java Basics - Anfänger-Themen 4
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
G Null Pointer Exeption Java Basics - Anfänger-Themen 8
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
N 'null' aus String löschen Java Basics - Anfänger-Themen 7
F Irgendein "Null" Fehler.... Java Basics - Anfänger-Themen 5
P Map liefert bei put null als Ergebnis Java Basics - Anfänger-Themen 6
M Interface Das Null-Layout Java Basics - Anfänger-Themen 12
M Problem mit null pinterexception beim laden von Bildern Java Basics - Anfänger-Themen 20
Dogge NumberFormatException null Java Basics - Anfänger-Themen 5
C 2 Objekte, 1 immer Null? Java Basics - Anfänger-Themen 8
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
J db4o-attrbibutauslesen null Java Basics - Anfänger-Themen 9
MiMa Null Inhalte in Variablen Java Basics - Anfänger-Themen 28
B Variable wird einfach so wieder auf "null" gesetzt Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben