文章目录
  • java.util.Date是不能直接插入数据库中的,虽然它包含了日期和时分秒。
  • java.sql.Date可以直接插入数据库,但是它只有日期而没有时间;
  • java.sql.Time可以直接插入数据库,但是它只有时间,没有日期
  • Java.util.Date需要转换为Java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Java.sql.Date类的子类Timestamp

参照这个就行了,这个对应注入类型。
===========java注入数据库==========
java类型 mysql类型 成功与否
date date yes
date time no
date timestamp no
date datetime no

time date no
time time yes
time timestamp no
time datetime no

timestamp date yes
timestamp time yes
timestamp timestamp yes
timestamp datetime yes
==========end java注入数据库========
总规律,如果A完全包含B,则A可以向B注入数据,否则报错

==========从数据库提取到java ==========
mysql类型 java类型 成与否
date date yes
date time yes ————–缺少的部分使用历元
date timestamp yes ————–缺少的部分使用历元

time date yes ————–缺少的部分使用历元
time time yes
time timestamp yes ————–缺少的部分使用历元

timestamp date yes
timestamp time yes
timestamp timestamp yes

datetime date yes
datetime time yes
datetime timestamp yes
==========end 从数据库提取到java=======
不会出错,缺少的部分使用历元,而不是当前日期时间

注意:看看数据库,发现毫秒数没了。再看看数据库的表字段属性,发现timestamp的长度设置为0。问题就出在这了,只需要把timestamp字段的长度设置为3,就可以保存毫秒数了。

文章目录