美文网首页
数据地图--后台查询代码

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

作者: 尘瀚 | 来源:发表于2017-01-16 02:17 被阅读64次

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. 为什么蓝色部分也要加?思考一下。

相关文章

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

    DHTMLXtree:datamap_search.js initTree() 前台展示.png 由前台JS可...

  • MYSQL查询地图周边信息

    不大习惯写博客,还是直接写代码吧 1 插入地图数据(使用的是mybatis) 2 查询地图周边信息 latitud...

  • 【Promise】Promise基本使用

    示例代码: 这是一个从后台查询数据的方法,getData(params)方法向后台发送请求,看起来,Promise...

  • mongoose 空间查询

      工作中我用了Koa2做了后台,选用了mongo数据库。因为要用到空间查询显示当前地图视图的空间查询结果,经过一...

  • ajax修改

    前端代码(列表页):点击修改时,一定要带id 后台代码:接收id,并通过id查询数据,再把数据分配到修改模板 前端...

  • 【渗透测试】-SQL注入之Cookie & http头注

    所有的注入都必须是组成数据库查询语句带入数据库进行查询操作的!!! 0x01 Cookie注入 后台源代码侧可以使...

  • 百度地图添加打点、鼠标浮动等操作

    后台返回查询企业数据,需要在左侧百度地图上进行企业打点,鼠标浮动展示企业名称。因为已经完成企业数据根据距离封装和列...

  • 前端与后端交互

    基本知识 1.前端提供数据 在开发中,URL主要是由后台来写好给前端。 若后台在查询数据,需要借助查询条件才能查询...

  • 数据查询

    ES查询用例 单个index 1、全文检索 多字段查询 2、地图搜索 地图字段查询,依赖数据中包含带有geo_lo...

  • day04 简单的数据导入和sql查询

    导入和插入数据代码 查询代码

网友评论

      本文标题:数据地图--后台查询代码

      本文链接:https://www.haomeiwen.com/subject/lrpubttx.html