你好
hbm 中设定
<property name="rigster_time" type="timestamp">
<column name="REGISTER_TIME" length="23" />
</property>
通常上来说,数据库和实体类间的字段建立联系,尽量让实体的属性类型与数据字段类型一一对应,比如你使用的是oracle数据库,那么表的主键如果为NUMBER,那么实体对应主键属性java类型就定义为Long或Integer(依字段长度决定),如果数据库表字段为VARCHAR,实体类对应属性就应该是String,如果数据库字段为小数,则定义为Double,属性建议使用包装类型,不用基本类型。至于时间,数据库一般由Date,DateTime,以及timestamp表示,对应于java实体类,一般用Date封装即可,对时间进精度要求高的话,就用TimeStamp封装。
当然,你说的情况是可以的,也就是说,使用java的String类型,理论上可以封装所有的数据库字段类型,你可以把任何数据库的有效字段都封装为String,因为java中的所有数据类型,都有toString()方法,可以以字符串形式展示任何数据类型,还可以通过重写对象的toString()方式达到自定义显示数据的方式,可以说很方便。但是时间类型一旦用字符串表示,你便失去了直接调用时间类型特有的一些有用的方法,比如获取时分秒,比较时间大小等等。而是需要手动再转化为时间对象再进行 *** 作,这无疑又多了一个步骤。因此,除非是比较特殊的情况,比如,单纯的进行数据导出,不做特殊处理,你可以建一个属性全为String的实体类,来封装数据库查询的数据,然后导出为excel或word文件之类的 *** 作。否则,强烈建议使用匹配的数据类型和数据库字段类型建立关联!
希望我的回答能帮到你!
ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER
在 Oracle 数据库中,当使用日期时间时,需要进行格式化 TO_DATE()
所以,应该这样写:
1
SELECT FROM wdsplanload WHERE adid = 209800 AND <a href=">
以上就是关于hibernate怎么插入时间数据库时间类型是datetime,实体时间是java.util.Date,映射文件没写类型属性全部的内容,包括:hibernate怎么插入时间数据库时间类型是datetime,实体时间是java.util.Date,映射文件没写类型属性、java *** 作数据库时一个属性是DateTime类型的写入数据库时可弄成Varchar么、ORA-00932: 数据类型不一致: 应为 TIMESTAMP, 但却获得 NUMBER等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)