Một cách tốt hơn nhiều để xử lý điều này là ở phía cơ sở dữ liệu của bạn. Trong khi tạo bảng, hãy chỉ định giá trị mặc định cho TIMESTAMP
cột dưới dạng
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
Ví dụ cho thấy một CREATE TABLE
cho MySQL nhưng khái niệm là như nhau. Trong khi chèn hàng của bạn, chỉ cần không chỉ định bất kỳ giá trị nào cho cột creation_date
và cơ sở dữ liệu sẽ tự động điền cho bạn.
Với cùng một bảng, nếu bạn muốn chèn ngày tháng từ Java, mã của bạn sẽ giống như
// 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();
}
Lưu ý rằng bạn cũng cần mở một Connection
DB (conn
đối tượng trên) và đóng nó khi bạn hoàn thành. Nếu bạn chưa quen với API JDBC, hãy xem Kiến thức cơ bản về JDBC
đầu tiên.