Een veel betere manier om hiermee om te gaan, is aan uw databasezijde. Geef tijdens het maken van de tabel de standaardwaarde op voor de TIMESTAMP
kolom als
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Het voorbeeld toont een CREATE TABLE
voor MySQL, maar het concept is hetzelfde. Geef tijdens het invoegen van uw rij geen waarde op voor de kolom creation_date
en de database zal het automatisch voor u invullen.
Gezien dezelfde tabel, als u de datum van Java wilt invoegen, zou uw code er als volgt uit moeten zien
// 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();
}
Merk op dat u ook een DB Connection
. moet openen (de conn
object hierboven) en sluit het als u klaar bent. Als JDBC API nieuw voor u is, bekijk dan JDBC Basics
eerst.