Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment obtenir un horodatage en Java et le stocker dans la base de données MySQL ?

Une bien meilleure façon de gérer cela est du côté de votre base de données. Lors de la création de la table, spécifiez la valeur par défaut pour le TIMESTAMP colonne comme

CREATE TABLE posts (
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50) NOT NULL,
    creation_date TIMESTAMP DEFAULT NOW()
);

L'exemple montre un CREATE TABLE pour MySQL mais le concept est le même. Lors de l'insertion de votre ligne, ne spécifiez simplement aucune valeur pour la colonne creation_date et la base de données le remplira automatiquement pour vous.

Étant donné le même tableau, si vous souhaitez insérer la date de Java, votre code devrait ressembler à

// 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();
}

Notez que vous devrez également ouvrir une DB Connection (le conn objet ci-dessus) et fermez-le lorsque vous en avez terminé. Si vous débutez avec l'API JDBC, consultez Les bases de JDBC d'abord.