【问题标题】:How to obtain a timestamp in Java and store in MySQL database?如何在 Java 中获取时间戳并存储在 MySQL 数据库中?
【发布时间】:2023-04-09 22:22:01
【问题描述】:

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

算法应该是这样的

在java web程序中(比如servlet)

  1. 获取时间戳(当前时间)
  2. 将时间戳存储在变量中
  3. 通过 sql 查询将时间戳存储在 mysql db 中

请帮忙!

我看过很多答案,但我不明白这些,因为我对 Java 和 jsp 技术还很陌生!

【问题讨论】:

标签: mysql jsp date servlets timestamp


【解决方案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();
}

请注意,您还需要打开一个 DB Connection(上面的 conn 对象)并在完成后关闭它。如果您不熟悉 JDBC API,请先查看 JDBC Basics

【讨论】:

  • 谢谢!效果很好! :) 但如果你也能解释我问的方式,那会提高我的知识
  • @HarishR 用 Ja​​va 中的示例插入更新了我的答案。
  • 非常感谢 :) 将能够继续我的大学项目!
猜你喜欢
  • 2014-01-28
  • 2016-01-07
  • 2017-02-02
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2019-02-01
相关资源
最近更新 更多