Ein viel besserer Weg, dies zu handhaben, ist auf Ihrer Datenbankseite. Geben Sie beim Erstellen der Tabelle den Standardwert für TIMESTAMP
an Spalte als
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Das Beispiel zeigt eine CREATE TABLE
für MySQL, aber das Konzept ist dasselbe. Geben Sie beim Einfügen Ihrer Zeile einfach keinen Wert für die Spalte creation_date
an und die Datenbank füllt es automatisch für Sie aus.
Wenn Sie in derselben Tabelle das Datum aus Java einfügen möchten, sollte Ihr Code wie folgt aussehen
// Get current time
Timestamp now = new Timestamp(new Date().getTime());
try {
// Prepare INSERT through Connection
PreparedStatement stmt = conn.prepareStatement(
"INSERT INTO posts (title, creation_date) VALUES (?, ?)");
// Bind values
stmt.setString(1, title);
stmt.setTimestamp(2, now);
// Insert
stmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
Beachten Sie, dass Sie auch eine DB Connection
öffnen müssen (die conn
Objekt oben) und schließen Sie es, wenn Sie damit fertig sind. Wenn Sie neu bei der JDBC-API sind, werfen Sie einen Blick auf JDBC-Grundlagen
zuerst.