Servlet

时间:2016-02-22 14:34:06

标签: java jdbc prepared-statement

我试图通过在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)

我做错了,需要帮助

1 个答案:

答案 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()));