Forum: PC-Programmierung SQL und Java Syntax.


von Mike M. (mikeii)


Lesenswert?

Hi

und zwar versuche ich gerade mit com.mysql.jdbc.Driver was in meine 
Datenbank zu schreiben.

Problem ist, er meckert mir die ganze Zeit die Gänsefüsschen an, und ich 
weiß nicht wirklich den Syntax. Wie funktioniert das denn?

String sql = "INSERT INTO test(vara, varb) VALUES ("hallo","hallo")";

Danke

von Yalu X. (yalu) (Moderator)


Lesenswert?

Mit '\' escapen:
1
String sql = "INSERT INTO test(vara, varb) VALUES (\"hallo\",\"hallo\")";

von Mike M. (mikeii)


Lesenswert?

perrrrrrrfekt :)

Blöder Fehler von mir, aber danke dir !

von Peter II (Gast)


Lesenswert?

verwende bitte gleiche Prepared  sql, sonst handelst du dir nur 
Probeleme ein. Ich weiss zwar nicht wie es mit java geht, aber das 
sollte sich finden lassen.

SQlPrepeare("INSERT INTO test(vara, varb) VALUES (?,?)");
SetParameter(1, "test1");
SetParameter(2, "test2");
SQLExec();

von TestX .. (xaos)


Lesenswert?

Peter II schrieb:
> verwende bitte gleiche Prepared  sql, sonst handelst du dir nur
> Probeleme ein. Ich weiss zwar nicht wie es mit java geht, aber das
> sollte sich finden lassen.
>
> SQlPrepeare("INSERT INTO test(vara, varb) VALUES (?,?)");
> SetParameter(1, "test1");
> SetParameter(2, "test2");
> SQLExec();

PreparedStatement heisst die Klasse in java

von TestX .. (xaos)


Lesenswert?

leerzeichen fehlt for WHERE und BITTE nimm PreparedStatements, alles 
andere ist ein riesen sicherheitsproblem...

von Mike M. (mikeii)


Lesenswert?

Wofür ist das PreparedStatement denn gut?
Das ist eigentlich eine PrivateAnwendung die Hausintern laufen soll, 
also nichts Sicherheitskritisches

von Mike M. (mikeii)


Lesenswert?

Okay schon gelesen, werde es mal einbauen, ein bisschen übung schadet ja 
nicht.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Echte Vorteile haben PreparedStatements aus technischer Sicht erst wenn 
die Abfrage mehrfach ausgeführt wird.

Praktisch ist es aber so, das in fast allen Fällen der Overhead welcher 
entsteht, auch wenn die Abfrage nur einmal ausgeführt wird, 
vernachlässigbar ist und die sonstigen Vorteile wie verhindern von 
Injections und übersichtlicherer Code und vorallem keine Gedanken machen 
wie Datentypen repräsentiert werden (das macht der JDBC Treiber) 
überwiegen.
1
PreparedStatement stm = con.prepareStatement("INSERT INTO test(vara, varb) VALUES (?, ?)");
2
stm.setString(1, "test1");
3
stm.setString(2, "test2");
4
stm.executeUpdate();
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/Connection.html#prepareStatement%28java.lang.String%29
http://download.oracle.com/javase/1.4.2/docs/api/java/sql/PreparedStatement.html

von Stefan (Gast)


Lesenswert?

Hallo,
ich bin noch relativ unwissend in diesem Gebiet, könnte mir das eventuel 
mal jemand erklären? Ich bin außerdem noch etwas jünger, also wenn 
jemand Gedult dazu hat - wäre nett, wenn ihr euch mal melden könnt. Habe 
auch Skype: qwertzlezplay
Danke schonmal,
Stefan

von Jens G. (jensig)


Lesenswert?

Wie wäre es, wenn Du Dir einfach eins der vielen Tutoriale reinziehst, 
wie z.B. http://docs.oracle.com/javase/tutorial/jdbc/basics/
Klein bißchen Datenbankwissen solltest Du aber schon haben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.