0

database table structure: sacno varchar(30), name varchar(45), fname varchar(45), dob date;

This is the jsp 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>
And here is jsp code:
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);
       }

while running it gives the following exception: java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date. Please help me out.

user3855182
  • 11
  • 1
  • 3
  • Possible duplicate http://stackoverflow.com/questions/530012/how-to-convert-java-util-date-to-java-sql-date – Jens May 11 '15 at 06:27

1 Answers1

0

Cast the date to java.sql.Date Something like

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

It should work.

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;
}
Ashish Yete
  • 51
  • 1
  • 7