Home >Database >Mysql Tutorial >存入数据库的Date类型只有年月日,没有时分秒的原因和解决办法
问题: 存入数据库的Date类型只有年月日,没有时分秒 我尝试过几种方式,结果都是年月日,明明有些地方可以有时分秒... 后来想到,所有和时间有关的地方,有一个地方我没有去注意。我是用jboss的hibernate插件生成的对象和hbm.xml配置文件,虽然我配置了主键
问题:存入数据库的Date类型只有年月日,没有时分秒
我尝试过几种方式,结果都是年月日,明明有些地方可以有时分秒...
后来想到,所有和时间有关的地方,有一个地方我没有去注意。我是用jboss的hibernate插件生成的对象和hbm.xml配置文件,虽然我配置了主键的类型,但是其他字段我都用的默认的,经过检查hbm.xml文件,发现一个问题。
原因:hibernate在生成该配置文件的时候,使用的都是基本类型。
String类型写的不是java.lang.String而是string
Date类型写的不是java.util.Date而是date
其他类型都是这样
(这个date,string看着很奇怪,不知道来自那里..可能是hibernate?)
解决:瞬间发现问题,修改成正确的类型,重试发现没问题了。
以前用myeclipse的时候,没有手动配置过hibernate插件的配置文件,都是直接生成。使用Eclipse+插件,没想到需要自己手动配置那么多的内容。
附上一个配置文件:
<?xml version="1.0" encoding="UTF-8"?> <hibernate-reverse-engineering> <table-filter match-name="AC18"></table-filter> <table name="AC18"> <primary-key> <key-column name="TEMPID" type="java.lang.Long"></key-column> <key-column name="ORDNUM" type="java.lang.Long"></key-column> </primary-key> <column name="AAA027" type="java.lang.Long"></column> <column name="AAE002" type="java.lang.Long"></column> <column name="AAC002" type="java.lang.String"></column> <column name="AAC003" type="java.lang.String"></column> <column name="FLAG" type="java.lang.String"></column> <column name="BZH001" type="java.lang.String"></column> <column name="CONTENT" type="java.lang.String"></column> <column name="ERRMSG" type="java.lang.String"></column> <column name="LOGONNAME" type="java.lang.String"></column> <column name="FUNCTIONID" type="java.lang.String"></column> <column name="SAVE" type="java.lang.String"></column> <column name="SAVEUSER" type="java.lang.String"></column> <column name="AAA111" type="java.lang.String"></column> <column name="AAC033" type="java.util.Date"></column> <column name="SAVETIME" type="java.util.Date"></column> </table> </hibernate-reverse-engineering>