MyBatis如何处理MySQL字段类型date与datetime
作者:zendwang
这篇文章主要介绍了MyBatis如何处理MySQL字段类型date与datetime问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
1. MySQL Data Type
1)DATETIME
- 显示格式:yyyy-MM-dd HH:mm:ss
- 时间范围:[ '1000-01-01 00:00:00'到'9999-12-31 23:59:59']
2)DATE
- 显示格式:yyyy-MM-dd
- 时间范围:['1000-01-01'到'9999-12-31']
3)TIMESTAMP
- 显示格式:yyyy-MM-dd HH:mm:ss
- 时间范围:[ '1970-01-01 00:00:00'到'2037-12-31 23:59:59']
2. MyBatis处理日期有两种的jdbcType
- 2.1 jdbcType=DATE
- 2.2 jdbcType=TIMESTAMP
3. 当我们使用java.util.Date作为实体的日期类型时
(JAVA没有DateTime这个类,Date类能够同时表示日期和时间)
java.util.Date实际上是能够表示MySQL的三种字段类型:
- 3.1 date
- 3.2 datetime
- 3.3 timestamp
4. MyBatis处理方式
而实际将java.util.Date当做参数传递给Mapper的时候
- 4.1 当不指定jdbcType时,日期会自动转化会MySQL的timestamp
- 4.2 指定jdbcType=TIMESTAMP,日期会自动转化会MySQL的timestamp
- 4.3 指定jdbcType=DATE,那么MyBatis会将传入参数截取为2018-07-24(Date)
当指定jdbcType=DATE的时候
MyBatis会自动截取掉时间
如果MySQL的日期字段类型是datetime或者timestamp一定不要这么写
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。