繁体   English   中英

如何将日期选择器中的日期存储到mysql数据库中?

[英]How to store date from datepicker into mysql database?

我试图将日期从输入存储到mysql数据库,但该值仍然为null。 反正有使其工作吗? 它还说“已添加数据”,但未插入数据库中,而在控制台下方则显示NullPointerException。

JSP页面

<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类

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);
        }
    }
}

您永远不会执行insert语句,添加一个executeUpdate调用:

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

并引用@SpringLearner:

记住关闭连接,结果集和准备好的语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM