数据地图--后台查询代码

DHTMLXtree:datamap_search.js initTree()

  • 前台展示.png
由前台JS可以看出,后台要做的工作:
  • 返回值是json类型
  • json内有一个元素是msg,树结构会通过msg展现
XMLString拼接规则:DataMapSearchImpl.java initTree
  • XML.png
  • 头部信息固定
    <?xml version="1.0" encoding="utf-8"?>

  • 对于XML本身的自有的斜线是是"/",需要对引用进行转义的字符是""。

  • 节点三要素是id,text,open。
    1. id是节点id,不能重复。如果当前节点没有id,可按顺序生成一个(必须要)
    2. text是节点展示的名字
    3. open表示当前节点是否自动打开

  • 这里只有两层树结构所以可以这么简单的写出来,如果有不确定的树结构的时候可以尝试使用递归方法调用

数据地图查询代码解析

有两次查询,一次是echart图表查询(loadEchartData方法),另外一个是datagrid查询(searchDataMap方法)。为了保证这两个查询的数据的一致性,我将这两个查询的关键代码抽成一个公共方法,共享拼装sql(fourLevelQuery方法)。
  • fourLevelQuery是一个四阶查询方法

  • 第一阶:获取查询结果落在表名以及表字段上的结果集

    • 涉及表:
      1. stnd_area_rela 模式与地域关系表
      2. stnd_dict dict_code为region_domain的部分,为地域字典的配置
      3. stnd_data_distri 数据地图分布表
      4. stnd_dict dict_code为business_domain的部分,为业务域的部分
        stnd_dict dict_code为system_domain的部分,为系统域的部分
    • 代码片段解析:

    片段 1 .
    Paste_Image.png

    1. stnd_area_rela表是一个模式对应数个地域代码
    2. stnd_dict dict_code为region_domain的部分 配置一个地域代码对应一个地域名称
    3. group_concat 将一个schema_id对应的dict_text拼接,按逗号分隔。
    4. 将结果作为area视图
    这个操作的数据量很少,应该不会影响效率。
    片段 2 .


    Paste_Image.png
         1.将stnd_data_distri表跟片段1以及stnd_dict表的业务部分三个表关联起来。有一个大表stnd_data_distri里面有1W条左右的数据
         2.如果查询结果落在db_name,scheme_name,table_name,table_coments,busi_type,area_val上,认为是有效的。
    

片段 3

Paste_Image.png
      对于一阶查询,只取查询结果落在表名和表备注上的。
    • 第二阶:获取查询结果落在表级,但是没有落在表名和表字段上的结果集

      • 涉及表: 跟一阶查询一致
        * 思路:先获取全集,再获取第一阶的结果,最后求差集。mysql求差集的方式是利用left join
    • 代码片段解析:
      片段1 :

Paste_Image.png
     1. 求全集与第一阶查询的差别在于没有加最后那个and限制条件

片段2:

Paste_Image.png
    1 . 获取全集的id
    2 . 获取限制集id
    3 . 两个id不能相同(使用别名)
    4 . 将两个结果集相同的放到同一行(id相同即可)
    5 . 取全集与限制集未公共的部分--即为补集
    6 . 千万不可对结果集排序(排序后会打乱原有次序)
    • 第三阶 获取查询结果落在字段名为用语的部分
Paste_Image.png
    1. 关键代码是ter_name 
    2. 为什么会有蓝色部分?如果只有term_name,假如没有输入用语,会有什么现象?
    • 第三阶 获取查询结果落在字段名为字段名以及字段备注的部分
Paste_Image.png
    1. 关键代码是colum_name,colum_comments
    2. 为什么蓝色部分也要加?思考一下。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 前言 其实读完斯坦福的这本《互联网大规模数据挖掘》,让我感觉到,什么是人工智能?人工智能就是更高层次的数据挖掘。机...
    我偏笑_NSNirvana阅读 12,493评论 1 23
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,169评论 11 349
  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,071评论 0 12
  • 天阔地大,万物入冬, 袅袅炊烟,人间万暖, 天渐暮色,万家灯火, 归人匆匆,觅那一灯。 屋中女人,且待归人, 灶前...
    若幽兰阅读 205评论 0 0
  • 我说我们去北京 你说我们去成都 S说我们去丽江 去哪里? 我都可以 老师说一心不要二用 我 一边看战争电影 一边听...
    Amoxicilline阅读 199评论 0 0