开发一个可兼容各数据库的开发平台,解决ifnullisnull函数在跨数据库问题。

Posted mygg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发一个可兼容各数据库的开发平台,解决ifnullisnull函数在跨数据库问题。相关的知识,希望对你有一定的参考价值。

又说到适应各数据库的sql语句了。

最近平台系统(程序员内部为开发其他页面自己用的平台)老是要跨,搞得我们sql改来改去,现在boss想法都兼容吧,所以这需要把各数据库的专有函数去掉。

然后在这种sql上遇到问题“

select d.data_group_key,ifnull(l.data_group_value,d.data_group_key)data_group_value,d.remark
from ctrl_data_group d.............

ifnull(mysql),isnull(sqlserver)的。

要求是在改的时候避免性能慢的问题,你不能改出一个降低后台运行速度。

重点来了,开始在网上找资料,发帖求大神。然后找到如下两点

1、写两套sql,在配置文件上判断(之前项目就有过两套sql)。被否决!!!原因在于,你前台每一次的请求都要去经过配置文件判断,使程序变得缓慢。

2、把要查的结果都写出来,然后在controller层做处理,请求的数据是多条的话,经过两次循环遍历,如果请求值为null,就替换掉。被否决!!! 循环遍历两次还是上面同样的问题。

差不多三四天的样子,找不到适合的。急!

后来boss看不下去了,亲手指点,出现了第三个方案。

3、实例它的查询字段,在实体里面判断。做完一看太简单了。我就直接上图

请求类型改成实体类的地址。如果数据有空,就用其他值代替,数据还是List接收,用的spring+springmvc。

之前sql

技术分享图片

改动sql

技术分享图片

技术分享图片


以上是关于开发一个可兼容各数据库的开发平台,解决ifnullisnull函数在跨数据库问题。的主要内容,如果未能解决你的问题,请参考以下文章

移动端开发兼容问题

总结关于各大浏览器兼容问题解决方案

可重构数控系统模块化设计的研制与开发

关于取可视区到页面顶部距离(scrollTop)各浏览器不同的方法(兼容性)

前端开发要注意的浏览器兼容性问题整理

前端开发要注意的浏览器兼容性问题整理