Neue Zeile in DB anlegen

Limosan

Mitglied
Hey Leute, hoffe mir kann jemand helfen.. Undzwar hab ich für mein Login eine JDBC Verbindung hergestellt, anmelden mit Benutzer und Pw läuft alles, jedoch möchte ich nun

aus meinem Programm ein neuen Benutzer anlegen.

Ich habe folgenden Code verwendet, jedoch springt das Programm nicht aus der While schleife wenn kein Benutzer gefunden wurde..

Java:
public static void neuAnlegen(String name, String passwort)
	{
		loginVerbi = getInstance();

		if(loginVerbi != null){
			Statement query;
			try {
				query = loginVerbi.createStatement();
				String pruefen = "SELECT benutzername FROM login WHERE benutzername LIKE '"+ name +"'";
				ResultSet result = query.executeQuery(pruefen);
				while (result.next()) {
					if(result.getString("benutzername").equalsIgnoreCase(name)){
						JOptionPane.showOptionDialog(null, name+" ist bereits vorhanden", "Info",
								JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,null,null,null);

						NeuBenutzer.run();
					}else{

						String sql = "INSERT INTO login (benutzername, passwort) " +	"VALUES(?,?)";
						PreparedStatement preparedStatement = loginVerbi.prepareStatement(sql);
						preparedStatement.setString(1, name);
						preparedStatement.setString(2, passwort);

						preparedStatement.executeUpdate();

						JOptionPane.showOptionDialog(null, name+" wurde angelegt", "Info",
								JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE,null,null,null);
						Menue1.run();

						//					} 
					}
				}}catch (SQLException e) {
					e.printStackTrace();
				}
		}
	}

Wer hat Verbesserungsvorschläge?
 
Zuletzt bearbeitet:

Joose

Top Contributor
Ich habe folgenden Code verwendet, jedoch springt das Programm nicht aus der While schleife wenn kein Benutzer gefunden wurde..

Woran merkst du das er die while-Schleife nicht verlässt?

Wer hat Verbesserungsvorschläge?

Für das INSERT verwendest du ein PreparedStatement für das SELECT aber nicht? -> SQLInjection
Entscheide dich ob du Attribute/Variablen englische oder deutsche Bezeichnungen gibst, nicht mischen.

Ein großer Nachtteil deines Codes ist die Mischung von Logik und GUI. Probiere diese Teile zu trennen (-> Schichten).
 

Limosan

Mitglied
Woran merkst du das er die while-Schleife nicht verlässt?

Ok, dass war vllt. nicht richtig ausgedrückt, ich merke aber dass das else Statment nicht ausgeführt wird wenn kein Benutzer vorhanden ist..:noe:


Für das INSERT verwendest du ein PreparedStatement für das SELECT aber nicht? -> SQLInjection
Ok, dass liegt an Copy and Paste und meiner Unwissenheit. :oops:
Welchen Standart sollte man besser verwenden?
 

Joose

Top Contributor
Ok, dass war vllt. nicht richtig ausgedrückt, ich merke aber dass das else Statment nicht ausgeführt wird wenn kein Benutzer vorhanden ist..:noe:

Warum sollte es auch ausgeführt werden? Da
Code:
result.next()
false liefert wird die while-Schleife gar nicht betreten.

Ok, dass liegt an Copy and Paste und meiner Unwissenheit. :oops:
Welchen Standart sollte man besser verwenden?

SQLInjection bedeutet das ein SQL Statement von einem Benutzer manipuliert werden kann um weitere Informationen/Daten aus der DB zu lesen. ==> BÖSE

PreparedStatement verhindern sowas
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Alte Daten ins neue Modell quetschen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
Thallius Ist JSON als column jetzt der neue Standard oder hab ich was verpasst? Datenbankprogrammierung 34
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
L0MiN Wie kann ich eine bestimmte Seite aus verschiedenen Excel-Tabellen in eine neue Exceldatei kopieren? Datenbankprogrammierung 1
J Optimierung von Querys/ ausgegebene Tabelle mit in neue Anfrage einbinden Datenbankprogrammierung 2
P Neue Tabelle dazugekommen Datenbankprogrammierung 1
S MySQl - Neue Datensätze "on the Fly" verarbeiten Datenbankprogrammierung 8
S Vordefinierte Queries aufrufen und neue speichern. Datenbankprogrammierung 5
G neue benutzer anlege in mysql Datenbankprogrammierung 3
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
D Komplette Zeile lesen und einem Konstruktor übergeben. Datenbankprogrammierung 3
M Derby/JavaDB Speicherplatz einer Zeile bestimmen Datenbankprogrammierung 0
H Update ganze zeile Datenbankprogrammierung 4
M DB: Mehrere Zeilen in einer Zeile zusammenführen Datenbankprogrammierung 10
G Oracle Zeile löschen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
W bestimmte Zeile mit bestimmter Spalte auslesen Datenbankprogrammierung 11
T mysql create zeile get autoincrementid Datenbankprogrammierung 2
Antoras Zeile aus DB löschen und ID runterzählen Datenbankprogrammierung 8
F Löschen einer Zeile Datenbankprogrammierung 4
E [SQL, Oracle] Zeile einfügen Datenbankprogrammierung 8
A Eine einzelne Zeile schreibschützen im DataSet Datenbankprogrammierung 13
E Wie bekomme ich die Daten von der letzten Zeile Datenbankprogrammierung 8
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
G MySQL Zeile löschen und gleich Optimieren Datenbankprogrammierung 6
D Tabelle eine Zeile einfügen. Datenbankprogrammierung 3
D Zufällige Zeile auslesen Datenbankprogrammierung 6
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
R MySQL Frage zum Anlegen von Artikeln inkl. Verbindungen Datenbankprogrammierung 0
D MySQL Neuen Datensatz mit "new" anlegen Datenbankprogrammierung 16
P MySQL Historie für ein Objekt anlegen Datenbankprogrammierung 5
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
S Problem beim Anlegen einer Tabelle Datenbankprogrammierung 5
A Kundendaten anlegen oder gleich in DB schreiben? Datenbankprogrammierung 8
G Mit Java-Programm Datenbank löschen/neu anlegen Datenbankprogrammierung 5
G Wie seine Datenbankklassen anlegen? Datenbankprogrammierung 7
G HSQLDB als Dateien anlegen Datenbankprogrammierung 5
G embedded H2; wie tables anlegen? Datenbankprogrammierung 3
L Datenbank anlegen, . Datenbankprogrammierung 9

Ähnliche Java Themen

Neue Themen


Oben