我想从Form中插入值到mysql数据库。但我无法在日期字段中插入值。此代码除日期字段外有效。有人可以帮助我..
String s1=txtUsername.getText();
String s2=txtPassword.getText();
String s3=txtName.getText();
String s4=txtAddress.getText();
String s5=txtContractEndDetails.getText();
connection getcon = new connection();
Connection conn;
try{
conn=getcon.creatConnection();
String sql="insert into TravelGuide(username,password,name,address,contract_end_date)values(?,?,?,?,?)";
PreparedStatement stmt = conn.prepareStatement(sql);
java.sql.Date dtValue = java.sql.Date.valueOf(s5);
stmt.setString(1, s1);
stmt.setString(2, s2);
stmt.setString(3, s3);
stmt.setString(4, s4);
stmt.setDate(5, s5);
stmt.executeUpdate();
}
catch(Exception ex){
JOptionPane.showMessageDialog(PanelTG, ex.getMessage(),"Error Occured 123",2);
}
答案 0 :(得分:0)
要将字符串转换为java.util.Date
对象,您需要DateFormat
(例如SimpleDateFormat
)
dateFormat.parse(..)
将字符串转换为Date
。答案 1 :(得分:0)
由于您正在使用MySQL DB,因此您需要将s5变量字符串格式化为yyyy-mm-dd日期。您可以使用dateFormat对其进行格式化。或者确保你的s5变量应该包含类似'2000-06-30'
的字符串答案 2 :(得分:0)
您需要传递java.util.Date
。您可以使用SimpleDateFormat
从Date
解析String
。
您的代码可能如下所示:
String s5 = txtContractEndDetails.getText();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date contractEndDate = null;
try {
contractEndDate = simpleDateFormat.parse(s5);
} catch (ParseException e) {
// handle telling the user they have bad input
}
stmt.setDate(5, contractEndDate);
注意:
s1
,s2
等变量名称。它们会导致不可读性,从而导致错误:使用name
,{{1}等专有名称等等,或者内联它们(即删除它们并直接使用初始化它们的代码)答案 3 :(得分:0)
public class Test {
public static void main(String[] args){
Date date = new Date();
DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String newDate = simpleDateFormat.format(date);
System.out.println("DateIn String datatype = "+newDate);
System.out.println("DateIn Date datatype = "+java.sql.Date.valueOf(newDate));
}
}
答案 4 :(得分:0)
让我给你基本的投掷如何转换字符串类型数据,即我们从网页/ HTML页面获得数据并在java中处理,然后将其插入到Mysql的DB中。 以下只是一段代码。
String d = req.getParameter("dob");
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
java.util.Date convertedDate = formatter.parse(d);
java.sql.Date date1 = new java.sql.Date(convertedDate.getTime());
prestat.setDate(3, date1);