MySQL Client - Server: Client verabschiedet sich sobald ich Variablen im SQL Statement verwende

D

Deleroy

Gast
Nabend,

wie der Titel schon sagt kann ich kein SQL Statement mit Variablen ausführen.

Hier mal wies geht:

Java:
Statement stmnt = dbcon.createStatement();
String insert = "INSERT INTO test(name, vorname) "
+"VALUES('hans', 'martin')";
stmnt.executeUpdate(insert);

Da geht alles glatt ...
Aber wenn ich jetzt z.B.

Java:
Statement stmnt = dbcon.createStatement();
name = "hans";
String insert = "INSERT INTO test(name, vorname) "
+"VALUES("+name+", 'martin')";
stmnt.executeUpdate(insert);

mache dann verabschiedet sich mein client oO was überhaupt keinen sinn macht ... und in der datenbank steht auch nix drin ...

Habt ihr vllt eine Idee??? verzweifel wirklich hier noch
 

Eldorado

Bekanntes Mitglied
Schau dir doch mal den Unterschied zwischen den beiden Befehlen an. Oben hast du um deine Werte Hochkommata, wie es auch gehört. Unten fehlen diese:
Java:
String insert = "INSERT INTO test(name, vorname) "
+"VALUES("+name+", 'martin')";
-->
Java:
String insert = "INSERT INTO test(name, vorname) "
+"VALUES('"+name+"', 'martin')";
Aber am besten nimmst du sowiso PreparedStatements
mfg
Eldorado
 
D

Deleroy

Gast
Ok danke - das hats gebracht ... aber jetzt hab ich weiterhin das problem das die daten z.b richtig angelegt werden.

Aber mein client verliert die verbindung ... aber auch nur wenn ich mit variablen arbeite ...

Was auch lustig ist - ich kann die gesammte Datenbank leeren - ohne fehler und kann danach noch weiterarbeiten, nur wenn ich zb die datenladen will dann kommt - verbindung ok! - und dann terminiert sich mein client.

Hier mal das Datenladen:
Java:
if(Server.db){
						dbmanager();
						Statement stmnt = dbcon.createStatement();
						String lade = "SELECT * FROM promod";
						
						ResultSet rs = stmnt.executeQuery(lade);
						
						while(rs.next()){
							name = rs.getString(name);
							vorname = rs.getString(vorname);
							anrede = rs.getString(anrede);
							strasse = rs.getString(strasse);
							plz = rs.getString(plz);
							ort = rs.getString(ort);
							telefon = rs.getString(telefon);
							fax = rs.getString(fax);
							bemerkung = rs.getString(bemerkung);
							
							ConnectionHandler ladeadresse = new ConnectionHandler(
									name, vorname, anrede, strasse, plz,
									ort, telefon, fax, bemerkung);

							adressliste.add(ladeadresse);
						}
						
						writetoclient.writeUTF("Daten erfolgreich aus DB geladen!");
						writetoclient.flush();
						
					}

Im dbmanager steht eigentlich nur:
Java:
public void dbmanager(){
		try{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		dbcon = DriverManager.getConnection("jdbc:mysql://dd18734.kasserver.com/d00c8aa6", "d00c8aa6", "123456");

	    if(!dbcon.isClosed()){
	    System.out.println("Successfully connected to " +
	    "MySQL server using TCP/IP...");
	    }

	    } catch(Exception e) {
	      System.err.println("Exception: " + e.getMessage());
	    }
	}
drin.

verstehte auch nicht warum es beim löschen nicht passiert - aber beim laden - speichern und sonst was
 
D

Deleroy

Gast

Ja preparedStatements hab ich beim speichern der daten:

Hier auch mal noch der auszug:
Java:
dbmanager();
						
						String insert = "INSERT INTO promod(name, vorname, anrede,strasse, plz,ort,telefon,fax,bemerkung)"
							+ "VALUES(?,?,?,?,?,?,?,?,?)";
						g=0;
						for (ConnectionHandler aw : adressliste) {
							pstm = dbcon.prepareStatement(insert);
							adressliste.get(g);
							pstm.setString(1, aw.name);
							pstm.setString(2, aw.vorname);
							pstm.setString(3, aw.anrede);
							pstm.setString(4, aw.strasse);
							pstm.setString(5, aw.plz);
							pstm.setString(6, aw.ort);
							pstm.setString(7, aw.telefon);
							pstm.setString(8, aw.fax);
							pstm.setString(9, aw.bemerkung);
							
							if(pstm.executeUpdate()>0){
								
								writetoclient.writeUTF("Daten in DB gesichert!");
								writetoclient.flush();
							}
							
							adressliste.clear();
							g++;
						}
						
						dbcon.close();
					}

auch hier - er connect sich - schreibt die daten rein - und dann passiert irgendwas das mein client sich terminiert
 
D

Deleory

Gast
Bekomm ja keine Exception ...

bzw ich merke gerade das ich es geschaft habe das mein client weiterläuft - aber die verbindung zum client reist ab.

Ich führe entweder laden oder speichern aus und die socketverbindung bleibt hängen oder so.
Außer beim löschen Oo?!
 

fastjack

Top Contributor
Ich vermute trotzdem mal, daß irgendwo in deinem Code Exceptions gefressen werden. Bau mal in alle Catch-Blöcke ein e.printStackTrace ein, dann poste mal die Ausgaben. Wie stellst Du eigentlich fest, das die Verbindung abreist?
 
D

Deleroy

Gast
sehr guter Tipp ...

also beim speichern kommt

Java:
java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
	at java.util.AbstractList$Itr.next(AbstractList.java:343)
	at ConnectionHandler.run(Server.java:986)
Warte auf neue Verbindung ...

und beim laden
Java:
java.lang.NullPointerException
	at java.lang.String$CaseInsensitiveComparator.compare(String.java:1217)
	at java.lang.String$CaseInsensitiveComparator.compare(String.java:1211)
	at java.util.TreeMap.getEntryUsingComparator(TreeMap.java:351)
	at java.util.TreeMap.getEntry(TreeMap.java:322)
	at java.util.TreeMap.get(TreeMap.java:255)
	at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1118)
	at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5617)
	at ConnectionHandler.run(Server.java:1090)
Warte auf neue Verbindung ...

das "Warte auf neue Verbindung" ist am ende der Switch anweisung - welche meine Methoden trennt.
 

fastjack

Top Contributor
Vermutung:

Java:
for (ConnectionHandler aw : adressliste) {

hier wird die Adressliste per Iterator durchiteriert.

Das gibt ein Problem, wenn Du dann clear() auf diese Liste aufrufst. Hinzufügen oder Entfernen soll nur über das Iteratorobjekt passieren, das Du beim ForEach leider aber nicht hast. Also mußt Du eine vernünftige Iteratorschleife bauen. Da Du die Liste "außerhalb" des Iterators veränderst, erhälst Du eine ConcurrentModification-Exception.

Tip:
Ich denke, es kann zu Problemen kommen, wenn du * selektierst und dann nacheinander Name, Vorname usw. per getString("Name)" etc, abfragst und * nicht genau diese Reihenfolge einhält. Manche DB's haben Probleme damit. Bei mySQL weis ich das jetzt nicht genau. Besser Du machst ein "select Name, Vorname, ... from ...". Damit bleibst Du auf jeden Fall DB-Unabhängig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Derby/JavaDB Client-Server-Architektur mit Datenbank Datenbankprogrammierung 6
A Client-Server anwendung sofort aktualisieren Datenbankprogrammierung 7
sparrow Hibernate in non-EE Server/Client-App (Topic geändert) Datenbankprogrammierung 10
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T JDBC und Client/Server Datenbankprogrammierung 12
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
D Datenbank zugriff über Client/Server Datenbankprogrammierung 4
L Oracle SQL Inserts via Client vs SQL Datei via ScriptRunner Datenbankprogrammierung 6
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
L H2 Blob Spalte im Client anzeigen Datenbankprogrammierung 2
J Daten synchronisieren in Multi-Client-Anwendungen (Hibernate) Datenbankprogrammierung 6
P Lokaler Java Client auf online Datenbank zugreifen Datenbankprogrammierung 2
R Einfache JDBC-Datenbank mit Admin-Client Datenbankprogrammierung 4
G client <> db anwendung - zugangsdaten? Datenbankprogrammierung 3
G [Hibernate] Hibernate in Desktop Client Datenbankprogrammierung 3
O Oracle Client Software für ojdbc5! Datenbankprogrammierung 1
A MySQL+Webserver --(Java-Applet)----> Client Datenbankprogrammierung 11
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D Oracle Gateway oder Relay-Server Datenbankprogrammierung 5
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Verbindung zum SQL-Server Datenbankprogrammierung 27
J Datenbank VPS Server Datenbankprogrammierung 3
L Oracle Daten von einem Server zum andere kopieren Datenbankprogrammierung 24
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
V HSQLDB detached entity passed to persist: server.Employee Datenbankprogrammierung 4
I Es kann keine Verbindung zum Server aufgebaut werden Datenbankprogrammierung 12
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
M MySQL Verbindung zum Server aufbauen ohne DB ansprechen Datenbankprogrammierung 2
C Derby auf Server Datenbankprogrammierung 6
ruutaiokwu sql server t-sql: try/catch bei ALTER TABLE ? Datenbankprogrammierung 4
ruutaiokwu sql server 2008 stored procedures automatisiert vergleichen Datenbankprogrammierung 2
ruutaiokwu sql server constraints priorität? Datenbankprogrammierung 3
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
D Daten von einem Server in eigenem Java-Programm benutzen Datenbankprogrammierung 6
W MySQL -Server Einstellung -- Zugriff übers lokale Netzwerk Datenbankprogrammierung 1
cover1012 Derby/JavaDB Verbindung mit FTP-Server Datenbankprogrammierung 13
N MySQL Datenbank-Server in *.jar packen? Datenbankprogrammierung 6
L Mit Java Desktop Anwendung auf Mysql Server auf Webspace verbinden Datenbankprogrammierung 11
F h2 als server Datenbankprogrammierung 3
V MySQL MsSql ohne Server nutzen? Datenbankprogrammierung 2
S MySQL Server Informationen abfragen Datenbankprogrammierung 6
F MSSQL-Server Verbindung Datenbankprogrammierung 5
DStrohma MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt? Datenbankprogrammierung 5
A MS Sql Server 2008 - Verbindungsproblem Datenbankprogrammierung 3
E Nach Server wechsel Datenbank fehler ?!? Datenbankprogrammierung 3
J Oracle oder SQL-Server Datenbankprogrammierung 18
J Server Datenbankprogrammierung 3
C SQL Server Treiber [DBNETLIB] Datenbankprogrammierung 14
T Hsqldb: java.lang.NoClassDefFoundError: org/hsqldb/Server Datenbankprogrammierung 2
E MSSQL-Server connection aufbau sehr langsam Datenbankprogrammierung 2
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
0x7F800000 MS-SQL Server 2008 Wie benutzt man da NATURAL JOIN / INNER JOIN USING? Datenbankprogrammierung 3
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
D Bean: server internal error Datenbankprogrammierung 5
Landei MsSql Express Server 2008 Datenbankprogrammierung 8
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
M [gelöst] Problem mit SQL Server. Statements... Datenbankprogrammierung 4
A Java JDBC Programm bringt auf Unix Server Fehlermeldung Datenbankprogrammierung 4
K JDBC MS SQL SERVER Datenbankprogrammierung 6
J MS sql Server 2005 Treiber Datenbankprogrammierung 9
G jdbc grundlegende verbindung zu sql server geht nicht Datenbankprogrammierung 9
thE_29 Byte auslesen mit MS SQL Server Datenbankprogrammierung 4
G Suchen von Zahlen in einem Textfeld / SQL Server Datenbankprogrammierung 1
G SQL Server Connection Datenbankprogrammierung 12
G Access Zugriff, DB auf Server, Applet Datenbankprogrammierung 4
R Unknown initial character set index . received from server Datenbankprogrammierung 5
M HSQLDB Server Problem Datenbankprogrammierung 2
K INSERT INTO bei Windows 2005 SQL Server Standard Edition . Datenbankprogrammierung 2
F Zwischen Datenbanken wählen auf SQL-Server Datenbankprogrammierung 4
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
G Datenbank ohne Server Datenbankprogrammierung 28
G DB-Server schmiert ab Datenbankprogrammierung 6
D Datenbankzugriff auf MS SQL Server 2000 funktioniert nicht Datenbankprogrammierung 3
J Hibernate + Spring + SQL Server => Performanceprobleme :( Datenbankprogrammierung 4
G JDBC Verbindung zu MySQL-Server auf lokalem Rechner Datenbankprogrammierung 5
O Datenbankzugriff "ohne" Server ? Datenbankprogrammierung 9
G Problem mit Suchen Statement Java und MS-SQL-Server Datenbankprogrammierung 9
thE_29 Microsoft SQL Server 2000 Datenbankprogrammierung 2
A DTS Export/Import MS-SQL Server 2000 Datenbankprogrammierung 3
A help me !(entitybean + sql server) Datenbankprogrammierung 2
R Invalid parameter bindings bei MS SQL Server Datenbankprogrammierung 2
G Fehlermeldung beim Zugriff auf SQL-Server-DB Datenbankprogrammierung 3
R JAVA-Prog auf Datenbank-Server zugreifen Datenbankprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben