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.