I am trying to write a code in Servlet for DOB and DOJ using Netbeans, MySQL and Tomcat.
Issue is when I am saving the date it goes into MySQL table but date automatically changes. I am using 3 drop down box for - dd mm yyyy and suppose I select 24 12 1973 and save this but the date has been changed by MySQl table like - 1974-01-24. Here what I have done (may be wrong)
From servlet1.java
First fetching the date from Date type DOB column from MySQL table
java.sql.Date Dob=rno.getDate(5);
String Dob1=Dob.toString();
Then extracting the day month and year in array
char number;
int a1[];
a1=new int[3];
a1[0]=0;
a1[1]=0;
a1[2]=0;
for( j=0;j<Dob1.length();j++)
{
number=Dob1.charAt(j);
if(Character.isDigit(number))
{
a1[i]=(a1[i]*10)+Integer.parseInt(new Character(number).toString());
}
else
{
i++;
}
}
Display the extracted value in drop down with options for modification if needed a1[2] for day
pw.println("<th> Date Of Birth </th>");
pw.println("<td>   <select name=day1><option value="+a1[2]+" >"+a1[2]+ "");
pw.println("<option value=1>1</option><option value=2>2</option><option value=3>3</option>"
+ "<option value=4>4</option><option value=5>5</option><option value=6>6</option>"
+ "<option value=7>7</option><option value=8>8</option><option value=9>9</option>"....
pw.println("</select>");
a1[1] for month
pw.println("<select name=month1><option value="+a1[1]+" >"+a1[1]+ "<option value=1>1</option>");
pw.println("<option value=2>2</option><option value=3>3</option><option value=4>4</option>"
+ "<option value=5>5</option><option value=6>6</option><option value=7>7</option>"
+ "<option value=8>8</option><option value=9>9</option><option value=10>10</option>"
+ "<option value=11>11</option><option value=12>12</option> "
+ "</select>");
a1[0] for year
pw.println("<select name=year1><option value="+a1[0]+" >"+a1[0]);
pw.println("<option value=77>1977</option><option value=78>1978</option><option value=79>1979</option><option value=80>1980</option>"+"<option value=81>1981</option><option value=82>1982</option><option value=83>1983</option><option value=84>1984</option>"
+"<option value=85>1985</option><option value=86>1986</option><option value=87>1987</option><option value=88>1988</option>"
+"<option value=89>1989</option><option value=90>1990</option><option value=91>1991</option><option value=92>1992</option>"
+"<option value=93>1993</option><option value=94>1994</option><option value=95>1995</option><option value=96>1996</option>"
+"<option value=97>1997</option><option value=98>1998</option><option value=99>1999</option><option value=100>2000</option>"
+"<option value=101>2001</option><option value=102>2002</option><option value=103>2003</option><option value=104>2004</option><option value=105>2005</option>");
pw.println("</select>(dd/mm/yyyy)</td></tr>");
After modification posting the data to servlet2.java for storing in table
int day1=Integer.parseInt(req.getParameter("day1"));
int month1=Integer.parseInt(req.getParameter("month1"));
int year1=Integer.parseInt(req.getParameter("year1"));
Date DOB= new Date(year1,month1,day1);
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/xe","root", "");
PreparedStatement ps=c.prepareStatement("Update Employee Dob=? where Emp_id=?");
ps.setDate(5,DOB);
int j=ps.executeUpdate();
Now I lost hope after fighting with this code since last 3 to 4 hours but can't figure out why date is changing. If any one guide me then I will know my mistake.