Ett mycket bättre sätt att hantera detta är på din databassida. När du skapar tabellen, ange standardvärdet för TIMESTAMP
kolumn som
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Exemplet visar en CREATE TABLE
för MySQL men konceptet är detsamma. När du infogar din rad ska du bara inte ange något värde för kolumnen creation_date
och databasen fyller i den automatiskt åt dig.
Med samma tabell, om du vill infoga datumet från Java, bör din kod se ut som
// 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();
}
Observera att du också skulle behöva öppna en DB Connection
(conn
objekt ovan) och stäng den när du är klar med den. Om du är ny på JDBC API, ta en titt på JDBC Basics
först.