MySQL中支持以下日期时间类型:
-
DATE:存储年月日(例如:2023-04-05)。范围从"1000-01-01"到"9999-12-31"
-
TIME:存储时分秒(例如:11:22:22)。范围从"-838:59:59"到"838:59:59"
-
DATETIME:同时存储年月日和时分秒(例如:2023-04-05 11:22:22)。范围从“1000-01-01 00:00:00”到“9999-12-31 23:59:59”
-
TIMESTAMP:与DATETIME相同,但是它的范围更小,仅支持1970-2038。
-
YEAR:存储4位数的年份(例如:2023)。范围从1901到2155
启动报错, date5 在实体类中是java.util.Date类型 数据库是year类型
先将date5在插入时候去掉
再次启动,数据被插入
将date5实体类改成String
插入成功
也就是说mysql数据库的year类型 需要用字符串 那么我用int Integer 这样行不行呢
也是可以的
用 int Integer double Double float Float 设置值时候家f Long long 都是可以的
下面试下查询 这里测试的Boot版本是2.7.2 mysql是8.0
下面实体类类型换成String
这里dat1到date5都需要注意范围和格式
实体类全部换成String类型后
查询
如果要换成2023/09/09这样格式 需要设置数据库的时间格式 其实个人觉得数据库时间字段的话
实体类属性类型可以用String更简单
关于SimpleDateFormat作为成员变量的线程安全问题
将字符串转Date是存在并发安全问题的 用了共有的Calender
但是将Date转指定格式字符串不存在安全问题
SimpleDateFormat存在的线程安全问题-CSDN博客