开发者社区> 问答> 正文

请教一下,Record中的getLong如何兼容Mysql、Oracle?报错

@JFinal 你好,想跟你请教个问题:

Record中的getLong如何兼容Mysql、Oracle,因为数值字段在Mysql中使用getLong正确,但在Oralce中如果使用getLong会报错:java.math.BigDecimal cannot be cast to java.lang.Long,所以在Oralce中必须使用getBigDecimal,如何才能兼容这两种数据库呢?

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

      JFinal支持在多种数据库下使用,例如Oracle、Mysql。但是这种支持是指某项目在开发时可以选择这些数据库,并不是指在项目使用Oracle数据库开发完成后无缝移植到Mysql数据库。

      不同数据库之间的差异很大尤其是Oracle,要实现数据库的无缝切换代价非常大,Hibernate就是例子,它甚至创造了HQL来屏蔽不同数据库sql方言的差异。另外,要做到无缝切换,开发者也会受到束缚,例如有些数据库使用特定的sql方言支持非常高级的功能,但为了无缝切换就无法使用这类方言。

      所以,楼主碰到的问题根据情况具体解决一下就可以了,例如可以这样:

    Longvalue=myRecord.getNumber(attr).longValue();

      对于ORM框架来说,人个认为兼容只做到这个层面上即可,数据库无缝迁移不仅困难而且代价很大

    谢谢您的回复!偑服你的技术和敬业
    2020-06-22 22:37:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像