簡體   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