OSC的POJO类在处理时间属性是怎么操作的?
看了OSC的源码之后,在运用POJO类时发现了一个问题从子类取fields存MAP时,类型会丢失,这样在进行SQL插入操作时Date类型instanceof java.util.date时为false,而数据库mysql中的类型为datetime,这样会报错MysqlDataTruncation: Data truncation: Incorrect datetime value
单独直接连mysql时是没有这个错误的,根本原因在BeanUtils.describe(this); 类型在此处丢失,想问老大在处理时间field是怎么处理的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Beanutils 好久没更新了,将就吧。 而且 Beanutils 支持 JDK 1.3 的,所以泛型肯定是不支持
行,我试试看先,其实我还想到了一个方法,就是override ListInsertableFields 方法,直接返回带类型的map,但是这个得自己重写map, 完全抛弃了BeanUtils.describe这个方法了
OK,换成sql.timestamp就成功了,谢谢了,不过觉得还是有些别扭,BeanUtils那个方法为什么把泛型给忽略掉
数据库时间字段建议用 bigint ,到1970年的毫秒数。有以下几点好处:1.数据库通用 2.时间比较效率比较高 3.在没有主键的情况下还可以高效分页
如果数据库是 datetime 类型,最好 bean 里的类型是 java.sql.Timestamp