# RMI: code wird einfach übergangen ?



## Verzweifelter2K (26. Mai 2008)

Hallo,

obwohl der code mit mainWindow = usw. ausgeführt wird der System.out test test darüber wird nie ausgegeben wie kann das sein?

Ich verzweifel fast noch daran, denn der user kann sich immer einloggen auch wenn ich der DB nicht vorhanden :/


```
if(e.getSource().equals(loginBT))
		{			
			try
			{
				if( !databaseAccess.sucheBenutzernameRMI(this.getBenutzernameTF(), Integer.valueOf(this.getKontonummerPF())) )
				{	
					JOptionPane.showMessageDialog(this,"Benutzername/Kontonummer ungültig","Error",JOptionPane.ERROR_MESSAGE);	 
				    return;
				}	
				else
				{					
					System.out.println("test test");
															
					this.dispose(); 
					try 
					{		
						
						mainWindow = new MainWindow(getBenutzernameTF(),databaseAccess , getKontonummerPF());
					}
					catch (IOException e1)
					{				
						e1.printStackTrace();
					}				
				}
			}
			
			catch (NumberFormatException e2) {			
				e2.printStackTrace();
			} catch (HeadlessException e2) {			
				e2.printStackTrace();
			} catch (RemoteException e2) {			
				e2.printStackTrace();
			}			
		}
```


----------



## Verzweifelter2K (26. Mai 2008)

ok das mit dem test test geht doch jetzt ...

doch die methode sucheBenutzernameRMI(..) gibt mir immer true zurück ich verstehs net, denn ich gebe benutzernamen im login ein die in der DB gar net drin sind ...


```
@Override
	    public boolean sucheBenutzernameRMI(String benutzername , int kontonummer){
	  	  return  database.existiertBenutzername(benutzername , kontonummer);
	    }
```


```
public boolean existiertBenutzername(String benutzername , int kontonummer)
	{
		boolean  status = false;
		
		try 
		{
			status = myStatement.execute("SELECT * From Kundendaten where benutzername = '"+benutzername+"' AND kontonummer = "+kontonummer+" ");
						
		}
		catch (SQLException e)
		{			
			e.printStackTrace();
		}   
		return status;
		
	}
```

hm vielleicht ist das einfach so, dass mir das Select immer true gibt, denn es wurde ja ausgeführt...


----------



## KSG9|sebastian (26. Mai 2008)

Also zuerst solltest du PreparedStatements verwenden. Dann ein executeQuery und prüfen ob genau 1 Row zurückkommt. Falls ja ist der Login korrekt, falls  != 1 ist der Login falsch.


----------



## Verzweifelter2K (26. Mai 2008)

juchu danke geht!


----------

