(JAVA)需要将DATE转换为SQL的准备好的语句

教学大纲:

最近一小时,我一直在寻找和尝试Web(和SO)上提供的解决方案,以了解如何Date在Java中使用该类型,但是我似乎无法使其正常工作。我使用NetBeans 11.2,我没有用Java和它给我一个困难时期(没有双关语意)。看来LocalDateTimeDateTime计提折旧,我应该使用java.time

老实说,我不知道该怎么办了。我试图建立一个具有输入值的查询以保存在mySQL数据库中。

日期的来源是 <input type="date">

SignIn.java(Servlet)

String birthDate = request.getParameter("data_birthdate");

UserDto userDto = null;
UserDao userDao = new UserDao(); 

try 
{ 
// Tried this 
    userDto = userDao.CreateUser(LocalDateTime.parse(birthDate));
// Tried that
    userDto = userDao.CreateUser(Date.parse(birthDate));
// Tried this 
    userDto = userDao.CreateUser(Time.parse(birthDate));
}

userDao.java (Dao) :

public void CreateUser(Date dateBirth) throws SQLException {
try {
        connect = db.getConnect();
        ps = connect.prepareStatement(SQL_CreateUser);
        ps.setDate(1, dateBirth);
        ps.executeUpdate();
    }
}
蒂姆·比格莱森(Tim Biegeleisen):

您可以LocalDateTime与一起使用PreparedStatement#setTimestamp()这里大致是您将如何做的:

String birthDate = request.getParameter("data_birthdate");
// assuming your text birthdates look like 1980-12-30 00:30:05
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dt = LocalDateTime.parse(birthDate, formatter);

try {
    connect = db.getConnect();
    ps = connect.prepareStatement(SQL_CreateUser);
    ps.setTimestamp(3, Timestamp.valueOf(dt));
}
catch (Exception e) {
    // handle exception
}

请注意在调用中使用的格式掩码DateTimeFormatter#ofPattern您需要用实际上适合您的字符串日期的任何掩码替换它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章