Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中

日期类错误


平常做开发的时候日期实体类一般都是Date类型,在把Date类型数据存入数据库就会有坑,今天就踩坑了

直接讲Date类型数据存入和取出数据库是会报错的

数据库是datetime字段:

Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中


实体类:

Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中


java.util.Date日期格式为:年月日时分秒 
java.sql.Date日期格式为:年月日
java.sql.Time日期格式为:时分秒 
java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒)

Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中

setDate()方法第二个参数要求为sqlDate,但我们一般是直接将Date类型存入,但Date类型却不能直接转成sqlDate类型

我们需要借助java.sql.Timestamp这个类型转化

Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中

    Timestamp t = new Timestamp(inform.getCreateTime().getTime());
            pstmt.setTimestamp(2,t);

这样就可以直接存入数据库了


从数据库取出也不可以直接取出

取出来的时候就很简单了,因为java.sql.Timestamp是继承了java.util.Date,所有直接将取出来的值赋给inform就行了!

例如:

Fix Bug (一)JavaWeb中将Date型数据类型保存到数据库Datetime字段中