Una forma mucho mejor de manejar esto es desde el lado de la base de datos. Al crear la tabla, especifique el valor predeterminado para el TIMESTAMP
columna como
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
El ejemplo muestra un CREATE TABLE
para MySQL pero el concepto es el mismo. Al insertar su fila, simplemente no especifique ningún valor para la columna creation_date
y la base de datos la completará automáticamente por usted.
Dada la misma tabla, si desea insertar la fecha de Java, su código debería verse como
// 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();
}
Tenga en cuenta que también necesitaría abrir una base de datos Connection
(la conn
objeto anterior) y ciérrelo cuando haya terminado. Si es nuevo en la API de JDBC, eche un vistazo a Fundamentos de JDBC
primero.