Guten Morgen an alle,
ich sitze hier gerade an einem Problem, dass ich einfach nicht vertsehe und deswegen auch nicht beseitigen kann.
Ich versuche Mittels eines PreparedStatement und INSERT in eine Tabelle mit Nutzern, einen neuen Nutzer einzutragen (PS: ich weiß das passwörter gehashed werden ;-) ). Es wird jedoch de facto nichts in die Tabelle eingetragen, obwohl keine Ausnahme oder sonst eine Fehlermeldung auftritt.
Ich habe Debugausgaben eingefügt, die (so wie ich das verstehe eigentlich nahe legen, dass die Zeile eingetragen wurde?!):
ANZAHL-INSERTS: liefert 1
Zuletzt eingetragene ID: liefert letzte ID++ (also obwohl nichts eingetragen wird, wird da hochgezählt)
nickname: beinhaltet auch den letzten "eingetragenen" Namen
Hier der Java-Code mit Debug-Outs
Hoffe jemand kann mir Helfen, schonmal vielen Dank im Voraus!
Gruß
Sich
ich sitze hier gerade an einem Problem, dass ich einfach nicht vertsehe und deswegen auch nicht beseitigen kann.
Ich versuche Mittels eines PreparedStatement und INSERT in eine Tabelle mit Nutzern, einen neuen Nutzer einzutragen (PS: ich weiß das passwörter gehashed werden ;-) ). Es wird jedoch de facto nichts in die Tabelle eingetragen, obwohl keine Ausnahme oder sonst eine Fehlermeldung auftritt.
Ich habe Debugausgaben eingefügt, die (so wie ich das verstehe eigentlich nahe legen, dass die Zeile eingetragen wurde?!):
ANZAHL-INSERTS: liefert 1
Zuletzt eingetragene ID: liefert letzte ID++ (also obwohl nichts eingetragen wird, wird da hochgezählt)
nickname: beinhaltet auch den letzten "eingetragenen" Namen
Hier der Java-Code mit Debug-Outs
Java:
try {
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
try {
UserInformation user = new UserInformation(name, password);
String url = "jdbc:mysql://" + dbHostname + ":" + dbPort + "/" + dbDBName;
Connection conn = DriverManager.getConnection(url, dbLogInName, dbLogInPassword);
conn.setAutoCommit(false);
String sqlCommand = "INSERT INTO users (id, nickname, password) VALUES (null, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sqlCommand, Statement.RETURN_GENERATED_KEYS);
// Parameter werden übergeben
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
System.out.println("ANZAHL INSERTS: " + ps.executeUpdate());
ResultSet rs = ps.getGeneratedKeys();
rs.next();
System.out.println("Zuletzt eingetragene ID: " + rs.getInt(1));
String sqlCommand2 = "SELECT * FROM users";
PreparedStatement ps2 = conn.prepareStatement(sqlCommand2);
ResultSet rs2 = ps2.executeQuery(); // Statement wird ausgeführt.
rs2.last();
System.out.println(rs2.getNString("nickname"));
ps2.close();
ps.close();
} catch (SQLException sqle) {
System.err.println("SQLException: " + sqle.getMessage());
System.err.println("SQLState: " + sqle.getSQLState());
System.err.println("VendorError: " + sqle.getErrorCode());
}
} catch (Exception e) {
System.err.println("..Unable to load MySQL-Driver.");
e.printStackTrace();
}
Hoffe jemand kann mir Helfen, schonmal vielen Dank im Voraus!
Gruß
Sich