これを処理するためのはるかに優れた方法は、データベース側です。テーブルの作成中に、TIMESTAMP
のデフォルト値を指定します 列として
CREATE TABLE posts (
id INTEGER AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50) NOT NULL,
creation_date TIMESTAMP DEFAULT NOW()
);
この例は、CREATE TABLE
を示しています。 MySQLの場合ですが、概念は同じです。行を挿入するときは、列creation_date
に値を指定しないでください。 データベースが自動的にデータを入力します。
同じテーブルで、Javaから日付を挿入する場合、コードは次のようになります
// 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();
}
DBConnection
も開く必要があることに注意してください (conn
上記のオブジェクト)、それが終わったら閉じます。 JDBC APIを初めて使用する場合は、JDBCの基本をご覧ください。
最初。