mybatis插⼊date类型_Java使⽤Mybatis插⼊Mysql数据库时间
跟取出的。。。
通过下⾯的步骤,就可以完全解决java插⼊mysql数据库时间以后再取出的的时间跟插⼊时的时间不⼀致,或者丢失了毫秒数的问题,或者插⼊数据库前的时间转为Long的值跟取出的时间转为的long值不⼀致的问题。。
1.类的属性类型
⾸先需要注意的是,Java中的实体类中的 这个时间属性的类型需要是Timestamp类型,例如:private Timestamp createTime; // 创建时间
除此之外的 java.util.Date 和java.sql.Date均不能达到本⽂的效果。
这是因为Date类型默认是不带有毫秒的,只有年⽉⽇和时分秒,因此,如果你发现插⼊的 数据库中的时间和再次取出来的时间毫秒数不⼀致,⼀般即时这种 问题。
2.数据库表的列类型
Mysql数据库中时间类型有多种:date,time,timestamp,year,datetime,这⼏种类型,那么真正能跟类中的时间Timestamp对应的列的类型 只有timestamp,因此,我们需要在设计 数据库时,把该列的类型设置为timestamp.例如:`createTime` datetime NOT NULL;
这⾥是关键的⼀步,Mybatis中所有的SQL都是在l⽂件中进⾏的,因此我们还需要修改SQL⾥的对应的时间的语法,如要在插⼊的时间属性 后⾯添加上要添加的属性在Java实体类中对应的属性类型timestamp。例如:
insert into
document_info(docTitle,docAbstract,createTime)
values(#{docTitle},#{docAbstract},#{createTime,jdbcType=TIMESTAMP})
这⾥的createTime必须写成#{createTime,jdbcType=TIMESTAMP}形式,这是由于如果不写名传⼊的createTime类型,它默认为Date 类型,会丢掉毫秒数。
mysql创建表数据类型通过以上步骤,就可以完全解决java插⼊mysql数据库时间以后再取出的的时间跟插⼊时的时间不⼀致,或者丢失了毫秒数的问题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论