Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Antwort
 
Themen-Optionen
Alt 23.03.2005, 15:20   Nach oben    #1
Quakes
Gast
 
Beiträge: n/a
Standard Überprüfen ob Datensatz vorhanden

Hi,
ich habe ein Progamm, welches überprüfen soll, ob ein Benutzer bereits mit dem Namen in der DB gespeichert ist. Wenn er noch nicht vorhanden ist soll er hinzugefügt werden.

Ich habe mir überlegt, dass versucht werden soll einen Datensatz zufinden, in dem der Benutzername und ein Benutzername in der DB identisch sind und wenn diese der Fall ist die Variable "userInDB" auf "true" gesetzt werden soll. Wenn kein Benutzer gefunden wurde soll eigentlich automatisch in den "catch" Bereich gewechselt werden und dort die Variable "userInDB" auf "false" gesetzt werden, sowie die Methoden " insertUserInDB();" aufgerufen werden.

Mein Problem ist nun, dass egal was ich mache immer die Methode automatisch in den Catch Bereich springt und dort die Methode "insertUserInDB();" aufruft. Ich denke mal mein Select Statment stimmt nicht Nur kp was da nicht stimmmt
Hilfe Hilfe

Hoffe ihr könnt mir helfen

Code:
private void checkRegNameDB()
  {
  //testen ob bereits ein User mit dem Namen in der DB vorhanden ist

  try
	{
	  searchSt	  = "Testuser"; //regName;

	  Statement statement = connection.createStatement ();
	  String queryString  = "SELECT * FROM JIM WHERE name =	"+searchSt+"; ";
	  ResultSet resultSet = statement.executeQuery (queryString);

	  String id	  = resultSet.getString (1);
	  String name	= resultSet.getString (2);
	  String pw	  = resultSet.getString (3);
	  String ip	  = resultSet.getString (4);
	  statusArea.append ("User "+searchSt+" in DB vorhanden"+"\n");

	  userInDB = true;
	}
	catch (Exception e)
	{
	  statusArea.append("User "+searchSt+" nicht in DB vorhanden"+"\n");
	  userInDB = false;
	}

	if (userInDB)
	{
	  setStatusMessage("User "+searchSt+" bereits in DB enthalten");
	}
	else
	{
	 insertUserInDB(); //methode zum hinzufügen eines Benutzers

	}
  }
mfg
Quakes
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 23.03.2005, 15:53   Nach oben    #2
ehli75
Benutzer
 
Benutzerbild von ehli75
 
Registriert seit: 30.11.2004
Beiträge: 97
Standard

Wie kommst du denn darauf, dass dein Programm in den catch-Block springen soll (wenn es normal arbeitet) ??? Da gehts nur rein, wenn während der Ausführung des Programmes eine Exception im try-Block geworfen wird.

Lass dir mal im catch-Block mit e.printStackTrace() den Fehler und den Stacktrace ausgeben und melde dich wieder hier mit der Meldung.

Hat dein Compiler den code SO übersetzt ? ich hatte neulich so was ähnliches vor ... ich wusste genau, dass nur EIN Datensatz gelesen wird ... aber das weiss Java ja nicht. Bei mir kam der Compiler-Fehler, dass ich fürs ResultSet mind. ein mal next aufrufen muss (siehe Beispiel unten).

und das mit dem userInDb würde ich so machen ....
vor der while-Schleife die Variable auf false setzen und in der Schleife einfach die Variable auf true setzen ... denn da gehts nur rein, wenn das Abfrageergebnis mind. einen Datensatz liefert. D.h. wenn kein Datensatz geliefert wird gehts nicht in die Schleife und die Variable behält ihren alten Wert.
Und nach der Schleife wertest du die Variabel wie gehabt aus.

Letztendlich sieht mein Vorschlag dann so aus:
Code:
private void checkRegNameDB()
  {
  //testen ob bereits ein User mit dem Namen in der DB vorhanden ist
  boolean userInDb = false;
  try
	{
	  searchSt	  = "Testuser"; //regName;

	  Statement statement = connection.createStatement ();
	  String queryString  = "SELECT * FROM JIM WHERE name =	" + searchSt + "; ";
	  ResultSet resultSet = statement.executeQuery (queryString);
          while( resultSet.next() ){
            userInDb = true;
   	    String id	  = resultSet.getString (1);
	    String name	= resultSet.getString (2);
	    String pw	  = resultSet.getString (3);
	    String ip	  = resultSet.getString (4);
	    statusArea.append ("User "+searchSt+" in DB vorhanden"+"\n");
          }// while
	}// try
	catch (Exception e)
	{
	  // Fehlerbehandlung ... z.B. Eintrag in einem Log-File machen oder einfach nur
         e.printStackTrace();
	}

	if (userInDB)
	{
	  setStatusMessage("User "+searchSt+" bereits in DB enthalten");
	}
	else
	{
	 insertUserInDB(); //methode zum hinzufügen eines Benutzers

	}
  }
so sollte es dann auch gehen.

Michael

PS: beschäftige dich mal mit Exceptions ... das ein sehr wichtiger Bereich in der Java-Entwicklung ... wenn du das nicht verstanden hast, kannst du schon fast einpacken.

PS2: Noch einfacher wärs doch (fällt mir gerade ein) wenn du einfach versuchst den User einzufügen ... wenn er schon vorhanden ist wird doch eh ein Fehler von der DB geworfen (du hast doch hoffentlich einen primären Schlüssel angelegt !?!?) ... Klappt es, war der User noch nicht drin ist es aber anschliessend ... wenn nicht einfach die Fehlermeldung auswerten und entsprechend reagieren.
ehli75 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.03.2005, 13:24   Nach oben    #3
Quakes
Gast
 
Beiträge: n/a
Standard

Hi,
vielen Dank !!!
hab's von der Logik her glaub verstanden
ne von den Exceptions hab ich wirklich nicht so viel plan ...

zu der DB:
Hab nen Primary Key vergeben, nur den hab ich auf einen zusätzliche Entität gesetzt (ID).
Aber Primary Key auf Username und PW setzen ist vielleicht wirklich schlauer und vorallem einfacher
thx für den Tipp

werde das möglichst bald mal testen und schauen ob alles geht.

Danke für die Hilfe

mfg
Quakes
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
string auf @ überprüfen Garnele PHP-Programmierung 17 06.02.2007 18:16
Pberprüfen ob Wert vorhanden ist. bob Datenbanken 4 04.01.2006 17:55
Bei PipedStreams den Buffer überprüfen Arvodan Allgemeine Java-Programmierung 0 10.10.2005 09:25
Überprüfen, ob gesuchte ID vorhanden ist? Javaner No.1 Datenbanken 4 10.02.2005 07:59
2Dimensionales Array, 2mal denselben Datensatz zonk Allgemeine Java-Programmierung 1 20.10.2004 07:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:23 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44