===========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 datetimeyes
==========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 timestampyes --------------缺少的部分使用历元
timestamp date yes
timestamp time yes
timestamp timestamp yes
datetime date yes
datetime time yes
datetimetimestamp yes
==========end 从数据库提取到java=======
MySql的时间类型有 Java中与之对应的时间类型datejava.sql.Date
datetimejava.sql.Timestamp
timestamp java.sql.Timestamp
timejava.sql.Time
yearjava.sql.Date
Java代码
//获得系统时间
java.util.Date date = new java.util.Date()
//将时间格式转换成符合Timestamp要求的格式
String nowTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)
java.sql.Timestamp ts_date = java.sql.Timestamp.valueOf(nowTime)
// ......
preparedStatement.setTimestamp(1, ts_date )
// ......
java中有date和datetime,mysql中也有date和datetime,这里我们来说说mysql中的date和datetime。1 mysql中的date和datetime
1.1 DATETIME
类型可用于需要同时包含日期和时间信息的值。MySQL 以:
‘YYYY-MM-DD HH:MM:SS’
格式检索与显示 DATETIME 类型。支持的范围是:
‘1000-01-01 00:00:00’
到
‘9999-12-31 23:59:59’。
(“支持”的含义是,尽管更早的值可能工作,但不能保证他们均可以。)
1.2 DATE
类型可用于需要一个日期值而不需要时间部分时。MySQL 以
‘YYYY-MM-DD’
格式检索与显示DATE值。支持的范围则是
‘1000-01-01’
到
‘9999-12-31’。
2 与java数据的交互
能看出来mysql中的date和datetime区别还是挺大的,date没有保存时间。但是java中的date(java.util.Date)记录的还是挺细的,日期和时间都可以记下来,那么现在问题来了,如果想在mysql中存储日期和时间,也就是用datetime,而在数据中应该如何对应呢?
我使用hibernate测了一下,发现当把mysql数据库中设置了datetime,反向工程生成的hbm.xml文件中,使用的是timestamp,如下:
<property name="Publishdate" column="publishdate" type="timestamp" not-null="false" length="10" />1
反向生成java的pojo时,生成的还是Date。
由此可见对于mysql中datetime,与java中的date,如果要使二者正确交互,中间要使用timestamp。
如果要在JAVA中直接插入MySql的datetime类型,则可以使用:
Date date = new Date()
Timestamp timeStamp = new Timestamp(date.getTime())12
再用setTimestamp()设置数据库中的“日期+时间”。
这样放入数据库的就是“yyyy-mm-dd hh:mm:ss”格式的数据。
注意,mysql中如果使用date而不是datetime是保存不下“日期+时间”的,只能保存“时间”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)