Cara yang jauh lebih baik untuk menangani ini adalah di sisi database Anda. Saat membuat tabel, tentukan nilai default untuk TIMESTAMP
kolom sebagai
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Contoh menunjukkan CREATE TABLE
untuk MySQL tetapi konsepnya sama. Saat menyisipkan baris Anda, jangan tentukan nilai apa pun untuk kolom creation_date
dan database akan otomatis mengisinya untuk Anda.
Diberikan tabel yang sama, jika Anda ingin memasukkan tanggal dari Java, kode Anda akan terlihat seperti
// 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();
}
Perhatikan, bahwa Anda juga perlu membuka Connection
DB (conn
objek di atas) dan tutup setelah selesai. Jika Anda baru menggunakan JDBC API, lihat Dasar-Dasar JDBC
pertama.