2015-05-11 3 views
0
структуры таблицы базы данных

: sacno VARCHAR (30), имени VARCHAR (45), Fname VARCHAR (45), дату Добролюбова;Я пытаюсь преобразовать дату в java.sql.Date

Это СПЯ PAGE-

<html> 
 
    <head> 
 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 
     <title>JSP Page</title> 
 
     <script language="javascript" type="text/javascript" src="caljs/MyCalender.js"></script> 
 
     <script language="javascript" type="text/javascript" src="caljs/validateDate.js"></script> 
 
     <link href="caljs/MyCalender.css" rel="stylesheet" type="text/css"> 
 
    </head> 
 
    <body> 
 
      <form action="AddNewMember.jsp" method="post"> 
 
      <h1>New Member Account </h1> 
 
      <table align="center"> 
 
       <tbody align="left"> 
 
        <tr> 
 
         <td class="td-color">Name*</td> 
 
         <td class="td-border"><input type="text" name="mname" placeholder="Enter Name"/></td> 
 
         <td class="td-color">Father Name:*</td> 
 
         <td class="td-border"><input type="text" name="fname" placeholder="Enter Father's Name"/></td> 
 
        </tr> 
 
        
 
        <tr> 
 
         <td class="td-color">Date of Birth:*</td> 
 
         <td class="td-border"><input type="text" name="dob" placeholder="Date of Birth" id="inputField" onfocus="displayCalendar('inputField','dd/mm/yyyy',this)"/></td> 
 
         <td class="td-color">Society Account Number:*</td> 
 
         <td class="td-border"><input type="text" name="sacno" placeholder="Society Account Number"/></td> 
 
        </tr> 
 
        <tr> 
 
         <td> <input type="submit" value="Submit"></td> 
 
        </tr> 
 
       </tbody> 
 
      </table> 
 
      </form> 
 
    </body> 
 
</html>
А вот код JSP:

String name=request.getParameter("mname"); 
     String fname=request.getParameter("fname"); 
     String dob=request.getParameter("dob"); 
     String sacc=request.getParameter("sacno"); 
     DateFormat df=new SimpleDateFormat("dd/MM/yyyy"); 
     Date dob1=null; 
     java.sql.Date sd=null; 
     dob1=(Date)df.parse(dob); 
     sd=new java.sql.Date(dob1.getTime()); 
     try 
     { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root",""); 
      PreparedStatement ps=con.prepareStatement("insert into member values(?,?,?,?)"); 
      ps.setString(1,sacc); 
      ps.setString(2,name); 
      ps.setString(3,fname); 
      ps.setDate(4,sd); 
      int i=ps.executeUpdate(); 
      if(i>0) 
      { 
       response.sendRedirect("Member.jsp"); 
      } 
     } 
     catch(Exception e) 
     { 
      out.print(e); 
     } 

во время работы это дает следующее исключение: java.lang.ClassCastException: java.util.Date нельзя передать в java.sql.Date. Пожалуйста, помогите мне.

+0

Возможные дублируют http://stackoverflow.com/questions/530012/how-to-convert-java-util-date-to-java-sql-date – Jens

ответ

0

В ролях датирования java.sql.Date что-то вроде

java.sql.Date sqlDate =new java.sql.Date(new java.util.Date().getTime()); 

Он должен работать.

java.util.Date utilDate = new java.util.Date(); 
    System.out.println("java.util.Date : " + utilDate); 
    java.sql.Date sqlDate = dateConvert(utilDate); 
    System.out.println("java.sql.Date: " + sqlDate); 
    DateFormat df = new SimpleDateFormat("dd/MM/YYYY - hh:mm:ss"); 
    System.out.println("Apply Date format : " + df.format(utilDate)); 
} 

private static java.sql.Date dateConvert(java.util.Date utilDate) { 
    java.sql.Date d = new java.sql.Date(utilDate.getTime()); 
    return d; 
} 
+0

FYI Это не типажей. И да, ваше решение должно работать. –

+0

отредактировал ответ –