Mnohem lepší způsob, jak to zvládnout, je na straně databáze. Při vytváření tabulky zadejte výchozí hodnotu pro TIMESTAMP
sloupec jako
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Příklad ukazuje CREATE TABLE
pro MySQL, ale koncept je stejný. Při vkládání řádku nezadávejte žádnou hodnotu pro sloupec creation_date
a databáze ji automaticky naplní za vás.
Vzhledem ke stejné tabulce, pokud chcete vložit datum z Javy, váš kód by měl vypadat takto
// 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();
}
Všimněte si, že byste také museli otevřít DB Connection
(conn
objekt nahoře) a po dokončení jej zavřete. Pokud s JDBC API začínáte, podívejte se na Základy JDBC
první.