@JFinal 你好,想跟你请教个问题:
Record中的getLong如何兼容Mysql、Oracle,因为数值字段在Mysql中使用getLong正确,但在Oralce中如果使用getLong会报错:java.math.BigDecimal cannot be cast to java.lang.Long,所以在Oralce中必须使用getBigDecimal,如何才能兼容这两种数据库呢?
JFinal支持在多种数据库下使用,例如Oracle、Mysql。但是这种支持是指某项目在开发时可以选择这些数据库,并不是指在项目使用Oracle数据库开发完成后无缝移植到Mysql数据库。
不同数据库之间的差异很大尤其是Oracle,要实现数据库的无缝切换代价非常大,Hibernate就是例子,它甚至创造了HQL来屏蔽不同数据库sql方言的差异。另外,要做到无缝切换,开发者也会受到束缚,例如有些数据库使用特定的sql方言支持非常高级的功能,但为了无缝切换就无法使用这类方言。
所以,楼主碰到的问题根据情况具体解决一下就可以了,例如可以这样:
Longvalue=myRecord.getNumber(attr).longValue();对于ORM框架来说,人个认为兼容只做到这个层面上即可,数据库无缝迁移不仅困难而且代价很大
谢谢您的回复!偑服你的技术和敬业版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。