# 数据库
# 概述
在流程执行过程中,经常需要与数据库进行交互(如更新订单状态、插入新记录等)。系统提供了内置的数据库操作插件,无需使用专门的集成组件(如ESB)即可完成这些操作。
# 数据库更新/删除操作
# 配置步骤
- 添加任务节点
- 拖拽一个任务节点到流程中
- 将任务类型修改为"数据库更新/删除"
▲ 添加任务节点
- 配置数据源
- 打开任务属性
- 在"数据源"中选择目标数据库(如DemoData)
▲ 配置数据源
- 编写SQL语句
- 在"SQL命令"中输入带参数的SQL
- 示例:
update order set status=@status where orderId=@orderId
▲ 编写SQL语句
- 参数映射
- 切换到"传入参数"页签
- 左侧选择表单数据,右侧自动显示SQL中的参数
- 使用连线将表单字段映射到SQL参数
- 常量值可直接在右侧代码框中指定,如: status: '完成'
▲ 参数映射
# 数据库插入操作
# 配置步骤
- 添加任务节点
- 拖拽一个任务节点到流程中
- 将任务类型修改为"数据库插入"
▲ 添加任务节点
- 编写插入SQL
- 示例:
insert into Product(code,name) values(@code,@name) - 系统会自动提取SQL中的参数(@code, @name)
- 示例:
▲ 添加任务节点
- 参数映射
- 将表单字段映射到对应的SQL参数
▲ 参数映射
# 返回值说明
- 使用序列的数据库:返回序列值(Oracle等)
- 使用自增字段的数据库:返回自增ID值
- 对于Oracle序列:
- 在SQL中直接使用
id引用序列 - 无需在参数中传值
- 在SQL中直接使用
# 注意事项
- 参数使用
@符号前缀标识 - 系统会自动解析SQL语句中的参数
- 常量值可直接在参数映射区域硬编码
- 插入操作返回值可通过流程变量获取
# 最佳实践
- 对于简单的单表操作,优先使用数据库插件而非ESB
- 复杂的多表操作或事务处理建议使用专门集成组件
- 生产环境建议使用命名参数而非字符串拼接防止SQL注入