Skip to main content

ConvertJSONToSQL

将JSON对象或数组根据数据库表转换成对应的SQL语句(增、删、改)

参数说明

数据库连接池

指定生成SQL对应表的所在数据库的连接池服务

SQL语句类型

指定生成的SQL语句类型

  • update
  • insert
  • delete

表名

指定数据库中需要操作的表名

Catalog

指定需要操作的Catalog名称,若没有则留空

Schema

指定表所属的Schema名称,若没有则留空

转换字段名

若该属性为true,则组件会将JSON字段名称转换大写并且删除下划线,用以匹配数据库中表字段;若为false,则JSON字段名必须完全配数据库中表的字段名

字段不匹配处理

若传入的JSON字段中有与数据库中字段不匹配的情况,此属性决定如何处理该字段

列不匹配处理

若数据库表中有字段在JSON中无法匹配,此属性决定如何处理

更新键

指定用于更新操作的字段,多个字段以逗号分隔

转定义列名

转义列名,指定是否允许在表中使用保留字作为列名

转定义表名

转义列名,指定是否允许使用特殊字符作为表名

SQL参数的属性前缀

组件生成的sql语句为了避免SQL注入,会将具体数据以键值对的形式存放到数据流属性中,此属性指定键名的前缀

输出连线

  • failure连线表示转换SQL失败的数据流输出
  • sql连线表示转换成功的sql语句输出
  • original连线表示转换成功后原始的数据流输出

示例

GenerateFlowFile配置

为避免生成过多数据,将组件”调度“中的”运行安排“设置为7 days

再将”自定义文本“设置为:

{
"id":7,
"name":"Birdie Barton",
"city":"Hemfazu",
"birthday":"1989-11-11"
}

流程说明

在此流程中,会根据JSON数据生成对应的SQL语句,同时在指定的数据库中进行相应操作,使用时需谨慎操作

ConvertJSONToSQL设置

以将JSON转为SQL语句插入Mysql为例,设置了数据库连接池为MySQL数据库连接,SQL语句类型为INSERT,表名为待插入数据的表lzw_user,其余属性保持默认配置。

结果

最后输出结果如下:

  • sql连线输出结果

  • original连线输出结果

流程模板

参见附件(请右键另存保存):模板文件