开发者社区> 问答> 正文

jfinal在表字段时间映射的异常??报错

今天同事在在Jfinal开发的时候问我说,getmodel(class);

如果使用时间格式是yyyy-mm-dd就会报错。

但是我在跟踪代码的时候使用TypeConverter转换方法的时候发现。

无论是yyyy-mm-dd 还是yyyy-mm-dd hh🇲🇲ss都没有问题。

这个是我就去看了一下报错信息。

原来在系统初始化的时候, ResultSet 类中的getMetaData方法将date类型转为了java.sql.Timestamp.

这个是jdk的版本问题?

还是在使用getmodel获取时间的时候必须用yyyy-mm-dd hh🇲🇲ss的方法?

@jfinal


展开
收起
爱吃鱼的程序员 2020-06-20 16:33:11 519 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    问题修复了, 针对Oracle解析特殊处理了:

    在TableBuilder类中的doBuild方法92行左右增加新的时间处理属性映射。

    新增加2个条件获取oracle.DATE的正确属性映射,字段类型是DATE并且是oracle数据库。

    这样前端的数据无论是yyyy-MM-dd或者是yyyy-MM-ddhh:mm:ss也可以正常的添加了。

    70左右增加一个实际字段类型获取。

    StringfactType=rsmd.getColumnTypeName(i);
    92行左右增加新的elseif条件

    elseif("DATE".equals(factType)&&config.dialect.isOracle()){table.setColumnType(colName,java.sql.Date.class);}
    如果你用的是oracle数据库,jar包用jfinal提供的ojdbc6.jar试试貌似不行。依然是date返回的数据类型是timestamp..postgresql在处理日期的时候也需要转换为java的sql类型
    2020-06-20 16:33:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载