在web开发中有时需要将表单中数据已Date类型存入数据库。
1:在form表单中
<form action="addgameservlet" method="post" >
<table align="center">
<tr height="35px">
<td>报名开始时间
</td>
<td>
<input type="text" name="gametime"></input>*格式:YYYY.MM.DD<br/>
</td>
</tr>
<tr height="35px">
<td>报名截止日期
</td>
<td>
<input type="text" name="enrolldeadline"></input>*格式:YYYY.MM.DD<br/>
</td>
</tr>
</table>
</form>
2:在servlet中进行接收
public class addgameservlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
Date gamdate = null;
Date enrolldeadline = null;
try {
//将String类型的数据解析成java.util.Date类型 new SimpleDateFormat("yyyy-MM-dd").prase(str);
gamdate = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("gametime"));
enrolldeadline = new SimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("enrolldeadline"));
} catch (ParseException e) {
e.printStackTrace();
}
response.setContentType("text/html");
Game g = new Game();
AdminMgrImpl adi = AdminMgrImpl.getInstance();
g.setEnrolldeadLine(enrolldeadline);
g.setGametime(gamdate);
if(adi.addGame(g)) {
response.sendRedirect("admin/gamelist.jsp");
}
else{
out.write("添加失败");
}
out.flush();
out.close();
}
}
3.存入数据库
public boolean addGame(Game game) {
int row = 0;
String SQL = "insert into game(gametime,enrolldeadline)"
+ " values(?, ?)";
Connection con = DB.getCon();
PreparedStatement ps = DB.getPre(con, SQL);
try {
//将java.util.Date类型的数据转换成java.sql.Date类型 nwe java.sql.Date((new java.util.Date()).getTime());
ps.setDate(1, new java.sql.Date(game.getGametime().getTime()));
ps.setDate(2, new java.sql.Date(game.getEnrolldeadLine().getTime()));
row = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DB.close(con, ps, null);
}
if(row>0)
return true;
else
return false;
}
4:这样就可以将表单中的数以Date类型的形式存入数据库。