开发者社区> 问答> 正文

Oracle数据库Number类型问题

Mode里的getInt方法在oracle里不行
而用getBigDecimal可以但在其他数据库又不行的问题啊。
目前想到的解决办法是修改Mode里的getInt源码,增加了对Oracle数据库的判断,不知道波总有没有好的解决办法,或者在新版里解决这个问题?

展开
收起
小旋风柴进 2016-06-08 15:12:09 2580 0
1 条回答
写回答
取消 提交回答
  • JFinal ActiveRecord方言是为Model中的save()、update()、findById()等等这些在方法内部生成 SQL的方法服务的,而并非为实现项目无缝跨越数据库而服务的。由于AR很多地方是直接接受开发者手写的SQL语句,所以方言不能做彻底,要做彻底主要有三种方案:

    1:将开发者输入的SQL根据不同的数据库类型转换。实现此目标复杂度会提升,因为不同的数据库差别较大。

    2:不让开发者使用SQL而用一套API来替代。例如Sql.select("*").from("user").where("a>b").list()。这种方式就失去了SQL的灵活与强大了,并且还需要写大量的代码支持。

    3:创造Hibernate中类似HQL的东东,这个工作量太大,并且仍然会失去SQL的灵活与强大。

    综合考虑,`ActiveRecord`不去支持无缝跨越数据库。貌似说得有点远了   
    
    2019-07-17 19:32:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载

相关镜像