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

如何在Java中获取时间戳并存储在MySQL数据库中?,mysql,jsp,date,servlets,timestamp,Mysql,Jsp,Date,Servlets,Timestamp,我正在使用MVC padagim开发一个基本的CMS,它使用JSP/Servlet技术。 当一个新的帖子被添加时,我想得到帖子创建的日期和时间,并将其存储为TIMESTAMP或DATATIME数据类型。 最好的方法是什么?我该怎么做 算法应该是这样的 在java web程序中(如servlet) 获取时间戳(当前时间) 将时间戳存储在变量中 通过sql查询将时间戳存储在mysql数据库中 请帮忙 我已经看到了很多答案,但我不理解这些,因为我对Java和jsp技术非常陌生 更好的处理方法是在数据库

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

算法应该是这样的

在java web程序中(如servlet)

  • 获取时间戳(当前时间)
  • 将时间戳存储在变量中
  • 通过sql查询将时间戳存储在mysql数据库中
  • 请帮忙


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

    更好的处理方法是在数据库端。创建表时,将
    时间戳
    列的默认值指定为

    CREATE TABLE posts (
        id INTEGER AUTO_INCREMENT PRIMARY KEY,
        title VARCHAR(50) NOT NULL,
        creation_date TIMESTAMP DEFAULT NOW()
    );
    
    该示例显示了MySQL的
    CREATE TABLE
    ,但概念相同。插入行时,不要为列
    creation\u 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();
    }
    

    请注意,您还需要打开一个DB
    连接
    (上面的
    conn
    对象),并在使用完毕后将其关闭。如果您不熟悉JDBCAPI,请先看一看。

    preparedStatement.setTimestamp(1,new Timestamp())?非常感谢。太棒了!:)但如果你也能解释一下我的提问方式,这会提高我的理解力knowledge@HarishR用Java更新了我的答案。非常感谢:)将能够继续我的大学项目!