java - java.sql.Date错误如何避免呢?将日期插入我的数据库
问题描述
我想在我的数据库中插入“ID、Benutzername、Passwort、Name、Vorname、Geburtsdatum、IstWirt”,但这段代码有错误:
connect.UpdateUser(Integer.parseInt(textFieldId.getText()),
textFieldBenutzername.getText(),
textFieldPasswort.getText(),
textFieldName.getText(),
textFieldVorname.getText(),
new java.sql.Date (GeburtsdatumDate),
IstWirtBoolean);
错误信息:
"the constructor Date(Date) in undefined"
我知道我需要在此请求中包含“java.sql.Date”,但我真的不知道如何避免错误。我已经尝试插入“textFieldGeburtsdatum.getText()”而不是“GeburtsdatumDate”,但没有成功。
boolean IstWirtBoolean;
if (textFieldWirt.getText() == "1") {
IstWirtBoolean = true;
}
if (textFieldWirt.getText() == "0") {
IstWirtBoolean = false;
}
Date GeburtsdatumDate = new SimpleDateFormat("dd/MM/yyyy").parse(textFieldGeburtsdatum.getText());
connect.UpdateUser(Integer.parseInt(textFieldId.getText()),textFieldBenutzername.getText(),textFieldPasswort.getText(),textFieldName.getText(),textFieldVorname.getText(),
new java.sql.Date (GeburtsdatumDate),IstWirtBoolean);
数据库代码:
public void UpdateUser(int ID,String Benutzername, String Passwort, String Name,
String Vorname, Date Geburtsdatum, Boolean IstWirt) throws SQLException {
try {
String query = "Insert into user (ID,Benutzername,Passwort,Name,Vorname,Geburtsdatum,IstWirt) Values (?,?,?,?,?,?,?)";
PreparedStatement stmt = con.prepareStatement(query);
stmt.setInt(1, ID);
stmt.setString(2, Benutzername);
stmt.setString(3, Passwort);
stmt.setString(4, Name);
stmt.setString(5, Vorname);
stmt.setDate(6, Geburtsdatum);
stmt.setBoolean(7, IstWirt);
stmt.executeUpdate();
}
catch(Exception e) {
System.out.println(e);
}
}
编辑:
Date GeburtsdatumDate = new SimpleDateFormat("dd/MM/yyyy").parse(textFieldGeburtsdatum.getText());
connect.UpdateUser(Integer.parseInt(textFieldId.getText()),textFieldBenutzername.getText(),textFieldPasswort.getText(),textFieldName.getText(),textFieldVorname.getText(),new java.util.Date (GeburtsdatumDate),IstWirtBoolean);
在这里我得到了同样的错误信息。
The method UpdateUser(int, String, String, String, String, Date, Boolean) in the type DBConnect is not applicable for the arguments (int, String, String, String, String, Date, boolean)
The constructor Date(Date) is undefined
解决方案
new java.sql.Date (GeburtsdatumDate)
导致“构造函数Date(Date)
未定义”
要么GeburtsdatumDate
已经是 a java.sql.Date
,在这种情况下你只需使用它,但很可能不是这种情况,所以它必须是其他类型的Date
,可能是 a java.util.Date
。
要将 a 转换java.util.Date
为 a java.sql.Date
,请调用以下getTime()
方法:
new java.sql.Date(GeburtsdatumDate.getTime())
推荐阅读
- tensorflow - 我应该使用什么损失函数和指标来训练 RNN 返回一系列类别?
- git - 检出远程分支
- java - 具有泛型类型的对象的 ArrayList
- node.js - 无法从 url localhost:3000 访问 index.html
- c - SystemHandleInformation 的 NtQuerySystemInformation 的替代方法是什么?
- java - 错误:应用程序运行失败,试图实现服务发现 Eureka
- android - 如何下载 Firestore 文档
- sql-server - Apache NiFi 与 MS SQL Server 集成
- jenkins - Jenkins (CJE) 上的最新版本中未安装 npm 依赖项(无服务器框架)
- geometry - 如何在 2D 表面上均匀分布不同预定义大小的圆