Mohammed Khasim P
Mohammed Khasim P

Reputation: 35

How to store date from datepicker into mysql database?

I have tried storing date from input to mysql database, but the value is still null. Is there anyway to make it work? Also it says 'data added' but it is not inserted in database and below it in console it gives NullPointerException.

JSP page

<html>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Date Input</title>
<script>
    $(function(){
        $('.datepicker').datepicker();
    });
</script>
</head>
<body>
    <form action="Date" method="post">
        <div class="row">
        Date: <input class="datepicker" type="text" name="date" id="date">
        </div>
        <input type="submit" value="save">
    </form>
</body>
</html>

Java class for connection

package com.jsppractise;
public class Date extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            String dt = request.getParameter("date").toString();

            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/sportsevent", "root", "root");

            PreparedStatement ps = con.prepareStatement("insert into date (date) values(?)");
            java.util.Date date = new SimpleDateFormat("MM/dd/yyyy").parse(dt);
            java.sql.Date d = new java.sql.Date(date.getTime());
            ps.setDate(1, d);
            ps = con.prepareStatement("select * from date");
            ResultSet s;
            s = ps.executeQuery();
            if (s != null) {
                System.out.println("date added");
            } else {
                System.out.println("not added");
            }

            out.print("<html><body><table><th>Date</th>");
            out.print("<tr><td>" + s.getDate(1) + "</td></tr>");
            out.print("</table></body></html>");
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

Upvotes: 1

Views: 3421

Answers (1)

Arnaud
Arnaud

Reputation: 17524

You are never executing the insert statement, add an executeUpdate call :

    PreparedStatement ps = con.prepareStatement("insert into date (date) values(?)");
    java.util.Date date = new SimpleDateFormat("MM/dd/yyyy").parse(dt);
    java.sql.Date d = new java.sql.Date(date.getTime());
    ps.setDate(1, d);
    ps.executeUpdate();// ADDED

    ps = con.prepareStatement("select * from date");
    ResultSet s = ps.executeQuery();

And to quote @SpringLearner :

Remember to close connection,resultset and preparedstatement

Upvotes: 2

Related Questions