Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erhalte ich einen Zeitstempel in Java und speichere ihn in einer MySQL-Datenbank?

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.