JDBC und executeUpdate

Hallo alle miteinander,

ich versuche im Moment eine kleines Programm zu schreiben, dass mit einer Datenbank zusammenarbeitet. Ich bin ein ziemlicher Neuling auf dem Gebiet und daher hab ich auch ein kleines Problem.

Ich versuche per Insert einen neuen Datensatz in der Tabelle zu erstellen. Nur leider ist es so, dass .executeUpdate() zwar ausgeführt wird, jedoch gibt es keine Veränderung in der Datenbank.
Mein erster Gedanke war, dass es ein Problem mit der Verbindung gibt, dass kann ich aber ausschließen, da ich SELECT Abfragen ohne Probleme ausführen kann.
Mein nächster Gedanke war, dass meine Abfrage einfach falsch ist. Das kann ich jedoch auch ausschließen, da wenn ich die Abfrag in der Konsole ausführe, ein Datensatz hinzugefügt wird.

Ich habe bereits ein wenig in Foren gesucht, doch so richtig konnte ich zu dem Thema nichts finden, dass mir weiterhilft.
Mein Code sieht so aus:

try {
Class.forName(„com.mysql.jdbc.Driver“).newInstance();
connection = DriverManager.getConnection
statement = connection.createStatement();
int r = statement.executeUpdate(query);
} catch (SQLException ex) {
System.out.println(„Fehler beim Ausführen des Statements“);
}

Ich habe so richtig keine Ideen mehr, was ich noch probieren könnte. Ich hoffe ihr könnt mir einen kleinen Denkanstoß geben, wie man diese Problem beheben kann.

Vielen Dank schonmal!

Dein Datenbankbenutzer hat aber schon Schreibrechte auf den Table, oder? Bzw. erlaubt die Datenbank (welche auch immer das ist, die Du benutzt) schreibenden Zugriff auf die Tables?

Hallo

Vielleicht irgendwas mit Auto-commit!?
Lass dir mal mit con.getAutoCommit() anzeigen auf was
der Mode gesetzt ist.

Hier findest du noch weitere Informationen:
http://java.sun.com/docs/books/tutorial/jdbc/basics/…

Gruss
Patrick

Hallo,

also ich habe es getestet, in dem ich mich im phpmyadmin mit dem Nutzer anmelde, mit dem ich auch aus Java raus das Insert durchführen will. Und es hat funktioniert.
Als gegen Probe habe ich in Java die Verbindung mit root als Nutzer hergestellt. Dieser sollte ja auf jedenfall genügend Rechte haben. Der Effekt war, dass das Statement ausgeführt wurde, aber kein neuer Datensatz erstellt wurde.

Viele Grüße, Matthias

Hallo,

also der AutoCommit- Wert ist True. Das bedeutet doch, dass er nach das Commit von selber ausführt, und ich mich damit nicht extra darum kümmern muss?

Danke für deine Hilfe!

Hallo,

ich wollte euch nur die Lösung meines Problemes mitteilen. Der Fehler lag in der Datenbank. Ich hatte die Einstellung NOT NULL. Und wollte jedoch ein Feld leer lassen. Dadurch wurde ein Fehler geworfen.

Danke für die Hilfe!