JAVA中如何将以Date型的数据保存到数据库以Datetime型的
字段中
需求:
User对象⾥⾯有java.util.Date的birthday,我们需要存的格式为2001-01-01 01:01:01,mysql数据库中是datetime,当我们需要存⼊数据库或从数据库中取出来时,有⼀些细节必须注意!因为直接将java.util.Date存⼊数据库是不⾏的!
为了测试,我还在表中加了⼀个time的字段,类型为varchar。
存⼊数据库:
加⼊我们直接将birthday存⼊数据库:ps.setDate((java.sql.Birthday()),这样会出错,因为类型的差异,强转会报错!
⽅式⼀:(推荐)
所有我们需要使⽤到java.sql.Timestamp这个类来进⾏转换:
Timestamp t = new Birthay().getTime());
ps.setTimestamp(3, t);
这样就可以直接存⼊数据库!
⽅式⼆:
我们直接将birthday转换成特定格式的字符串String,存⼊数据库,这样也可以!:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java时间日期格式转换String birthday = df.Birthay());
ps.setString(3, birthday);//这样和下⾯这样都可以!
ps.setObject(3, birthday);
这样转换成字符串存进数据库没问题,数据库的datetime接受特定格式的字符串,这样存进数据库还是datetime类型的值!
从数据库中取出来:
取出来的时候就很简单了,因为java.sql.Timestamp是继承了java.util.Date,所有直接将取出来的值赋给birthdat就⾏了!
Timestamp t = rs.getTimestamp("birthday");
user.setBirthay(t);
⽇期⽐较问题:
为了测试⽇期⽐较,排序,特意增加了⼀个字段time,time是varchar类型的,存的都是特定格式的⽇期字符串(注意是字符串),
当测试排序时,不管是tetime类型的birthday,还是varchar类型的time,都能⽐较和排序!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论