【问题标题】:Java - Formating date in a right way and inserting it into mysql db [duplicate]Java - 以正确的方式格式化日期并将其插入 mysql db [重复]
【发布时间】:2017-04-26 18:01:57
【问题描述】:

好的,我制作了一个带有日期选择器的表单,它以 dd-mm-yyyy 格式提供输入值。

我正在检查每一步的输出,但我坚持第一步。所以部分代码是这样的。

Servlet 控制器:

Pacijent pacijent = new Pacijent();
try {
    Date datum = new SimpleDateFormat("dd-mm-yyyy").parse(request.getParameter("datum"));
    pacijent.setDatum(datum);
} catch (ParseException e) {
    e.printStackTrace();
}
out.println(pacijent.getDatum());
//not important part of a code ...
//dao.addPacijent(pacijent);

Pacijent 类:

public class Pacijent {
    private int id;
    private String ime;
    private String prezime;
    private Date datum;
    private String adresa;
    // Getters and Setters...
}

在 PacijentDao 类中插入函数

public void addPacijent(Pacijent pacijent) {
    try {
        PreparedStatement ps = connection.prepareStatement("INSERT INTO pacijent (ime, prezime, datum, adresa) VALUES (?,?,?,?)");
        ps.setString(1, pacijent.getIme());
        ps.setString(2, pacijent.getPrezime());
        ps.setDate(3, (Date) pacijent.getDatum());
        ps.setString(4, pacijent.getAdresa());
        ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

在我点击提交按钮后,它会输出这样的日期 Wed Jan 18 00:04:00 CET 2017。我需要帮助以 mysql 接受它的方式解析它。数据库中的数据字段为日期格式。

谢谢

【问题讨论】:

标签: java mysql date


【解决方案1】:

ps.setDate();要求一个与 java.util.Date 不同的 java.sql.Date

你可以尝试使用

ps.setDate("a", new java.sql.Date(pacijent.getDatum().getTime()));
 or use a timestamp 
ps.setTimestamp(3, new Timestamp(pacijent.getDatum().getTime()));

【讨论】:

    【解决方案2】:

    好的,我已经设法找到了一种方法来做到这一点。这是正确的代码。 Servlet 控制器:

    Pacijent pacijent = new Pacijent();
    try {
       Date dop = new SimpleDateFormat("dd-MM-yyyy").parse(request.getParameter("datum"));
            pacijent.setDatum(dop);
    } catch(ParseException e) {
                e.printStackTrace();
    }
    out.println(pacijent.getDatum());
    //not important part of a code ...
    //dao.addPacijent(pacijent);
    

    在 PacijentDao 类中插入函数

    public void addPacijent(Pacijent pacijent) {
        try {
            PreparedStatement ps = connection.prepareStatement("INSERT INTO pacijent (ime, prezime, datum, adresa) VALUES (?,?,?,?)");
            ps.setString(1, pacijent.getIme());
            ps.setString(2, pacijent.getPrezime());
            ps.setDate(3, new java.sql.Date(pacijent.getDatum().getTime()));
            ps.setString(4, pacijent.getAdresa());
            ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2021-06-01
      • 2011-01-12
      • 2018-07-13
      • 1970-01-01
      • 2019-11-22
      相关资源
      最近更新 更多