[英]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. 我试图将日期从输入存储到mysql数据库,但该值仍然为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.
它还说“已添加数据”,但未插入数据库中,而在控制台下方则显示NullPointerException。
JSP page 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 class for connection 用于连接的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);
}
}
}
You are never executing the insert statement, add an executeUpdate
call : 您永远不会执行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();
And to quote @SpringLearner : 并引用@SpringLearner:
Remember to close connection,resultset and preparedstatement
记住关闭连接,结果集和准备好的语句
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.