码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-03-29 12:03:46      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:springmvc   出现   简单   方案   资料   com   9.png   src   重点   

又说到适应各数据库的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

技术分享图片

技术分享图片

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

标签:springmvc   出现   简单   方案   资料   com   9.png   src   重点   

原文地址:https://www.cnblogs.com/mygg/p/8668707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!