データベースにDATETIME
データ型の列があります。 `PreparedStatementを使用して、この列の値を現在の日付と時刻に設定します。それ、どうやったら出来るの?
PreparedStatement#setTimestamp()
を使用します。ここで _Java.sql.Timestamp
_ を渡します。これは System#currentTimeMillis()
で構築されます。
_preparedStatement.setTimestamp(index, new Timestamp(System.currentTimeMillis()));
// ...
_
また、DBがサポートしている場合は、DB固有の関数を呼び出して現在のタイムスタンプを設定することもできます。たとえば、MySQLはnow()
をサポートしています。例えば。
_String sql = "INSERT INTO user (email, creationdate) VALUES (?, now())";
_
または、DBでサポートされている場合、フィールドタイプを、MySQLのTIMESTAMP
の代わりに DATETIME
などの挿入/更新タイムスタンプを自動的に設定するものに変更します。
conn = getConnection();
String query = "insert into your_table(id, date_column) values(?, ?)";
pstmt = conn.prepareStatement(query);
pstmt.setString(1, "0001");
Java.sql.Date date = getCurrentDatetime();
pstmt.setDate(2, date);
関数getCurrentDatetime()は次のことを行います。
public Java.sql.Date getCurrentDatetime() {
Java.util.Date today = new Java.util.Date();
return new Java.sql.Date(today.getTime());
}