我试图通过在servlet中使用以下代码但在准备好的语句中显示错误来从3下拉框DD MM YYYY中获取的MySQL表中插入日期
int bday1=Integer.parseInt(req.getParameter("bday"));
int bmonth1=Integer.parseInt(req.getParameter("bmonth"));
int byear1=Integer.parseInt(req.getParameter("byear"));
SimpleDateFormat dtformat= new SimpleDateFormat("yyyy-MM-dd");
String date1=Integer.toString(bday1)+"-"+Integer.toString(bmonth1)+"-"+Integer.toString(byear1);
java.util.Date dt = dtformat.parse(date1);
System.out.println(date1);
ps.setDate(5,dt);
显示错误的最后一行
找不到适合setDate的方法(int,java.util.Date) 方法java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar) 不适用 (实际和正式的参数列表长度不同) 方法java.sql.PreparedStatement.setDate(int,java.sql.Date)不适用 (实际参数java.util.Date不能通过方法调用转换转换为java.sql.Date)
我做错了,需要帮助
答案 0 :(得分:3)
java.sql.PreparedStatement.setDate(int,java.sql.Date,java.util.Calendar)不适用(实际和正式参数列表的长度不同)
java.util.Date无法通过方法调用转换转换为java.sql.Date)
SQL Date与JAVA Util Date不同。在将JAVA日期设置为PreparedStatement之前,应将其转换为SQL日期。
而不是ps.setDate(5,dt);
你应该做ps.setDate(5,new java.sql.Date(dt.getTime()));