Un modo molto migliore per gestirlo è sul lato del database. Durante la creazione della tabella specificare il valore predefinito per il TIMESTAMP
colonna come
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
L'esempio mostra un CREATE TABLE
per MySQL ma il concetto è lo stesso. Durante l'inserimento della riga, non specificare alcun valore per la colonna creation_date
e il database lo popolerà automaticamente per te.
Data la stessa tabella, se vuoi inserire la data da Java, il tuo codice dovrebbe assomigliare a
// 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();
}
Nota che dovresti anche aprire un DB Connection
(il conn
oggetto sopra) e chiuderlo quando hai finito. Se non conosci l'API JDBC, dai un'occhiata a Nozioni di base su JDBC
prima.