表单中日期类型的输入实现与数据持久化

下面有个简单的表单:

<form action="${pageContext.request.contextPath}/servlet/regServlet " method="post">
		用户名:<input type="text" name="username"/><br/>
		密码:<input type="password" name="pass"/><br/>
		邮箱:<input type="text" name="email"/><br/>
		生日:<input type="date" name="birthday"/><br/>
			<input type="submit" value="注册"/><br/>
	</form>

我把生日的类型设为了date,但是会有感叹号“Undefined attribute value (date).” 你可以不用管它,效果时这样的:

效果图

在获取表单中的生日时,仍然可以使用request.getParameter("birthday"); 不过它返回的时String 类型,不用怀疑,它真的可以返回String类型的日期。

你可以在实体类中把生日birthday直接定义成 java.sql.Date birthday。

注意这个 java.sql.Date 时SQL中的Date,不是我们平常用的Date,而String类型时不能直接转化为 java.sql.Date的,

我们需要先把String 转换成我们的平常用的Date  在转换成  java.sql.Date,方法如下:

String datestring = request.getParameter("birthday");
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
java.sql.Date date = new java.sql.Date(format.parse(datestring).getTime());



 java.sql.Date类型的持久化只需要用   prepareStatement类中的 setDate(int,java.sql.Date)就可以了

conn = DBUtils.getConnection();
ps = conn.prepareStatement("INSERT INTO users(username,PASSWORD,email,birthday) VALUES(?,?,?,?)");
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
ps.setString(3, user.getEmail());
ps.setDate(4, user.getBirthday());
			
int i = ps.executeUpdate();




  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值