OSC的POJO类在处理时间属性是怎么操作的?

发布于 2021-11-08 13:56:06 字数 288 浏览 671 评论 5

看了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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

凯凯我们等你回来 2021-11-11 19:02:45

Beanutils 好久没更新了,将就吧。 而且 Beanutils 支持 JDK 1.3 的,所以泛型肯定是不支持

累赘 2021-11-11 18:56:28

行,我试试看先,其实我还想到了一个方法,就是override ListInsertableFields 方法,直接返回带类型的map,但是这个得自己重写map, 完全抛弃了BeanUtils.describe这个方法了

爱你是孤单的心事 2021-11-11 16:03:00

OK,换成sql.timestamp就成功了,谢谢了,不过觉得还是有些别扭,BeanUtils那个方法为什么把泛型给忽略掉

沦落红尘 2021-11-11 11:58:35

数据库时间字段建议用 bigint ,到1970年的毫秒数。有以下几点好处:1.数据库通用 2.时间比较效率比较高 3.在没有主键的情况下还可以高效分页

陌若浮生 2021-11-10 16:10:08

如果数据库是 datetime 类型,最好 bean 里的类型是 java.sql.Timestamp

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文