(JAVA) 需要将 DATE 转换为 SQL 的准备语句
(JAVA) Need to convert DATE to prepared statement for SQL
在过去的一个小时里,我一直在寻找并尝试网络(和 SO)提供的解决方案,了解如何在 Java 中使用 Date
类型,但我似乎无法理解在职的。我使用的是 NetBeans 11.2,我 不 习惯于 Java,这让我很难过(没有双关语意)。似乎 LocalDateTime
、Date
和 Time
已贬值,我应该使用 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(道) :
public void CreateUser(Date dateBirth) throws SQLException {
try {
connect = db.getConnect();
ps = connect.prepareStatement(SQL_CreateUser);
ps.setDate(1, dateBirth);
ps.executeUpdate();
}
}
您可以将 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
时使用的格式掩码。您需要用实际适合您的字符串日期的任何掩码替换它。
在过去的一个小时里,我一直在寻找并尝试网络(和 SO)提供的解决方案,了解如何在 Java 中使用 Date
类型,但我似乎无法理解在职的。我使用的是 NetBeans 11.2,我 不 习惯于 Java,这让我很难过(没有双关语意)。似乎 LocalDateTime
、Date
和 Time
已贬值,我应该使用 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(道) :
public void CreateUser(Date dateBirth) throws SQLException {
try {
connect = db.getConnect();
ps = connect.prepareStatement(SQL_CreateUser);
ps.setDate(1, dateBirth);
ps.executeUpdate();
}
}
您可以将 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
时使用的格式掩码。您需要用实际适合您的字符串日期的任何掩码替换它。