在复杂的数据处理场景中,我们总有这样的烦恼:不同数据源类型,不同IP的数据库如何关联查询数据呢?又怎么对数据进行新增、编辑、删除操作呢?别怕,积木资产轻松教你实现跨数据库多表关联查询及数据操作!
案例背景
两个不同IP地址的MySQL数据库表,A表为茶叶销售明细表,B表为茶叶种类表。积木资产将展示如何有效的在smardaten中联合这两张表,获取A表的全部数据及与之相关联的B表tea_desc字段并且对这两张表的数据增删改。
案例解析
将案例背景中的两个数据源接入到smardaten应用中并将A表与B表分别收取生成对应的数据资产。
配置积木资产以A表为主表,关联关系为A.parent_id=B.data_id,需要获取全部的数据总量,再将A表数据与B表数据查询出来,两组数据对应匹配并拼接最终返回所有数据。
登录 smardaten 系统,进入应用应用构建模块,在数据模型>数据资产中新增资产。
注:积木资产本身不需要数据源,但需要添加案例背景中的数据源并根据A、B创建数据资产配合使用。
创建积木资产,输入资产名称并配展示的所有数据字段,字段信息包括字段名称(必填)、字段类型(必填)、类别、显示类型、别名等且必须有一个主键字段。
添加完所有需要的字段后,点击下一步进入功能配置,配置服务编排实现不同的数据操作能力。
将字段配置中创建的数据字段在开始节点全部定义成变量,用于接收外部传参。
同时额外定义三个变量,result对象数组,默认值为[],pageSize数值,pageNum数值,默认值可自定义,用于数据分页。
数据读取获取A表的数据总量并输出对象数组变量total,这里的total无法直接作为数量需要配合变量计算节点解析成数值类型,重新定义该变量为totalCount。
使用数据读取节点获取A表数据,同时开启分页,每页条数为pageSize,总页数为pageNum并输出变量res1。数据读取节点获取B表数据,无需分页只输出变量res2。
通过循环判定节点将res2对象数组中的每一个对象取出来定义为abc,用变量计算节点定义map对象并初始化并将abc封装进map中用于后续的数据匹配。
循环判定节点遍历A表的数据,定义每次循环的数据为对象item并通过变量计算节点解析出item中的parent_id,判断是否不为空。
若为空,则将这条item数据通过变量计算节点添加进result对象中输出并重新进入循环。
若parent_id不为空,变量计算节点选择result,在item中放入一个字段,字段为map对象中与parentId匹配的tea_desc并判断字段是否为空。
为空输出一个空字符串,不为空则取值且把合集添加进最终的result中输出,输出后重新进入A表的循环判定,直到没有数据结束输出,在结束节点中勾选输出字段result。
不同于查询批量数据开始节点需要定义全部字段配置的变量信息,查询单条数据只需一个data_id变量即可,用于接收外部参入的参数信息。
数据读取节点在A表中查询出data_id=变量data_id的数据并输出为对象数组变量res1,通过变量计算节点解析出rse1中的parent_id。将parent_id在另一数据读取节点中查询出与B表data_id匹配的数据输出变量res2。
获取res1及res2的数据后,使用变量计算节点定义一个对象数组变量result。在表达式中初始化该变量并将res2中的tea_desc字段添加进res1中,再将res1添加进result中返回出来。最终添加结束节点,勾选result字段输出。
开始节点添加“字段配置”过程中添加的字段,用于接收外部参数传递。
数据操作节点分别对A表与B表进行新增操作,可选择简单模式或高级模式,简单模式可直接选择A表资产进行新增添加全部字段并匹配对应变量即可。高级模式需选择数据源编写SQL插入数据。新增数据后A表返回result,B表返回result2。最终添加结束节点,勾选result及result2字段输出。
与新增数据相同,在开始节点定义“字段配置”阶段的全部变量名称,用于接收外部参数传递。
使用两个数据操作节点分别对A表与B表进行更新数据操作,可选择简单模式或高级模式,更新A表时,更新条件为data_id=data_id,添加全部字段并选择对应变量,返回值result。B表更新条件根据关联关系为data_id=parent_id,返回值result2。最后添加结束节点,输出result及result2。
删除数据仅需根据data_id查询匹配数据即可实现对应的删除操作,所以开始节点只定义变量data_id。
数据读取节点查询A表符合条件数据的parent_id并输出变量parentid。通过变量计算节点解析出parentid对象数组中的parent_id并定义为字符串parentId。
根据上述步骤的data_id及parentId,使用数据操作节点分别删除A表与B表符合条件的数据即可,返回分别为result及result2。最后添加结束节点,勾选输出字段result及result2。
👇 👇 👇
点击查看使用手册获取案例更多详细信息
扫描二维码,重温精彩直播回放!
抢先获取新技能