如何在Java中获取时间戳并存储在MySQL数据库中?

时间:2015-02-15 11:54:10

标签: mysql jsp date servlets timestamp

我正在开发一个基本的CMS使用JSP / Servlet技术使用MVC padagim。 添加新帖子时,我想获取帖子创建的日期和时间,并将其存储为TIMESTAMP或DATATIME数据类型。 最好的方法是什么?我该怎么做?

算法应该是这样的

在java web程序(如servlet)中

  1. 获取时间戳(当前时间)
  2. 在时间戳中存储变量
  3. 传递sql查询以将时间戳存储在mysql db
  4. 请帮忙!

    我已经看到很多答案,但我不了解这些,因为我对Java和jsp技术都很陌生!

1 个答案:

答案 0 :(得分:1)

处理此问题的更好方法是在数据库端。创建表时,请将TIMESTAMP列的默认值指定为

CREATE TABLE posts (
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50) NOT NULL,
    creation_date TIMESTAMP DEFAULT NOW()
);

该示例显示了MySQL的CREATE TABLE,但概念是相同的。插入行时,不要为列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();
}

请注意,您还需要打开数据库Connection(上面的conn对象)并在完成后关闭它。如果您是JDBC API新手,请先查看JDBC Basics