我通过表单接受用户数据,我想在我的 SQL 数据库中添加系统日期和时间,我应该如何使用 JAVA 来完成?

Posted

技术标签:

【中文标题】我通过表单接受用户数据,我想在我的 SQL 数据库中添加系统日期和时间,我应该如何使用 JAVA 来完成?【英文标题】:I am accepting User data via Form, I want to add System Date and Time in my SQL Database, how should I do it using JAVA? 【发布时间】:2018-07-10 06:38:29 【问题描述】:

这是我的 DAO 实现。 我应该如何在我的 Sql 数据库中插入时间戳和日期。 ? 我不希望用户输入时间和日期,它应该根据系统当前的日期和时间自动设置。

    @Override
    public void saveOrUpdate(Contact contact) 
        if (contact.getId() > 0) 
            // update
            String sql = "UPDATE contact SET name=?, email=?, address=?, "
                        + "telephone=? WHERE contact_id=?";
            jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                    contact.getAddress(), contact.getTelephone(), contact.getId());
         else 
            // insert
            String sql = "INSERT INTO contact (name, email, address, telephone)"
                        + " VALUES (?, ?, ?, ?)";
            jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                    contact.getAddress(), contact.getTelephone());
        

    

【问题讨论】:

努力更改您的代码,您发布的内容显示没有任何努力 您必须先在表中添加一列以保留日期时间数据。使用ALTER TABLE 命令。然后更新您的 java 代码以反映相同 首先想到的是:只需将 new Date() 添加到您的字段并从 util.sql.Date 导入。还为该字段生成吸气剂 @Ab Sin 我想知道java代码。 【参考方案1】:

幸好mysql有日期/时间功能,所以一个可能的解决方案是:

  @Override
public void saveOrUpdate(Contact contact) 
    if (contact.getId() > 0) 
        // update
        String sql = "UPDATE contact SET name=?, email=?, address=?, "
                    + "telephone=?, timestamp=NOW() WHERE contact_id=?";
        jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                contact.getAddress(), contact.getTelephone(), contact.getId());
     else 
        // insert
        String sql = "INSERT INTO contact (name, email, address, telephone, timestamp)"
                    + " VALUES (?, ?, ?, ?, NOW())";
        jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                contact.getAddress(), contact.getTelephone());
    


【讨论】:

谢谢,这会在我的数据库中添加当前系统时间,但是当我编辑条目时它会改变。您能否指导我如何在每次编辑记录时不更改时间。 再次从更新子句中删除时间戳字段。【参考方案2】:

在您的 Contact.java 中,您首先必须创建一个时间戳import java.sql.Timestamp;

    private Timestamp createdAt;
    @Column(name = "timestamp", length = 29)

    public Timestamp getCreatedAt() 
        return this.createdAt;
    

    public void getCreatedAt(Timestamp createdAt) 
        this.createdAt= createdAt;
    

然后在你的 DAO 中:

 @Override
public void saveOrUpdate(Contact contact) 
    if (contact.getId() > 0) 
        // update
        String sql = "UPDATE contact SET name=?, email=?, address=?, "
                    + "telephone=?, timestamp=? WHERE contact_id=?";
        jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                contact.getAddress(), contact.getTelephone(), contact.getCreatedAt(), contact.getId());
     else 
        // insert
        String sql = "INSERT INTO contact (name, email, address, telephone, timestamp) VALUES (?, ?, ?, ?, ?)";
        jdbcTemplate.update(sql, contact.getName(), contact.getEmail(),
                contact.getAddress(), contact.getTelephone(), new Timestamp(System.currentTimeMillis()));
    


检查这是否有效。

【讨论】:

以上是关于我通过表单接受用户数据,我想在我的 SQL 数据库中添加系统日期和时间,我应该如何使用 JAVA 来完成?的主要内容,如果未能解决你的问题,请参考以下文章

我想在我的数据库中查找列名 - 可以吗?

我想在 PL SQL 中接受用户输入并将其传递给程序,给我看一个简单的程序吗?

我正在尝试将我的表单链接到我的 PHP 页面,并且我想在用户单击提交按钮时将用户的输入打印到该页面上

我想通过接受用户输入通过 JavaScript 在我的 DOM 中打印一个 Rectangle,但是当我运行此代码时,我得到 'str' 未定义

我想在我的颤振应用程序中从 firebase 数据库中获取当前用户数据

从我的表单中的字段中保存数据并通过在我的主视图控制器中列出主键来检索它们?