Mysql使用Mybatis进行时间操作

Mysql使用Mybatis进行时间操作_第1张图片

MySQL中支持以下日期时间类型:

  1. DATE:存储年月日(例如:2023-04-05)。范围从"1000-01-01"到"9999-12-31"

  2. TIME:存储时分秒(例如:11:22:22)。范围从"-838:59:59"到"838:59:59"

  3. DATETIME:同时存储年月日和时分秒(例如:2023-04-05 11:22:22)。范围从“1000-01-01 00:00:00”到“9999-12-31 23:59:59”

  4. TIMESTAMP:与DATETIME相同,但是它的范围更小,仅支持1970-2038。

  5. YEAR:存储4位数的年份(例如:2023)。范围从1901到2155

Mysql使用Mybatis进行时间操作_第2张图片Mysql使用Mybatis进行时间操作_第3张图片Mysql使用Mybatis进行时间操作_第4张图片

启动报错,  date5 在实体类中是java.util.Date类型    数据库是year类型

Mysql使用Mybatis进行时间操作_第5张图片

先将date5在插入时候去掉

Mysql使用Mybatis进行时间操作_第6张图片

再次启动,数据被插入

Mysql使用Mybatis进行时间操作_第7张图片

将date5实体类改成String

Mysql使用Mybatis进行时间操作_第8张图片Mysql使用Mybatis进行时间操作_第9张图片Mysql使用Mybatis进行时间操作_第10张图片

插入成功  Mysql使用Mybatis进行时间操作_第11张图片

也就是说mysql数据库的year类型  需要用字符串   那么我用int  Integer  这样行不行呢Mysql使用Mybatis进行时间操作_第12张图片

Mysql使用Mybatis进行时间操作_第13张图片

也是可以的

Mysql使用Mybatis进行时间操作_第14张图片

用 int Integer   double Double  float Float 设置值时候家f  Long long  都是可以的

下面试下查询        这里测试的Boot版本是2.7.2  mysql是8.0

Mysql使用Mybatis进行时间操作_第15张图片Mysql使用Mybatis进行时间操作_第16张图片

Mysql使用Mybatis进行时间操作_第17张图片

下面实体类类型换成String

Mysql使用Mybatis进行时间操作_第18张图片Mysql使用Mybatis进行时间操作_第19张图片

这里dat1到date5都需要注意范围和格式

Mysql使用Mybatis进行时间操作_第20张图片

实体类全部换成String类型后

查询

Mysql使用Mybatis进行时间操作_第21张图片

如果要换成2023/09/09这样格式   需要设置数据库的时间格式  其实个人觉得数据库时间字段的话

实体类属性类型可以用String更简单

关于SimpleDateFormat作为成员变量的线程安全问题

将字符串转Date是存在并发安全问题的  用了共有的Calender

但是将Date转指定格式字符串不存在安全问题

SimpleDateFormat存在的线程安全问题-CSDN博客

你可能感兴趣的:(mysql,mybatis,数据库)