# 数据库

# 概述

在流程执行过程中,经常需要与数据库进行交互(如更新订单状态、插入新记录等)。系统提供了内置的数据库操作插件,无需使用专门的集成组件(如ESB)即可完成这些操作。

# 数据库更新/删除操作

# 配置步骤

  1. 添加任务节点
    • 拖拽一个任务节点到流程中
    • 将任务类型修改为"数据库更新/删除"

添加任务节点 ▲ 添加任务节点

  1. 配置数据源
    • 打开任务属性
    • 在"数据源"中选择目标数据库(如DemoData)

配置数据源 ▲ 配置数据源

  1. 编写SQL语句
    • 在"SQL命令"中输入带参数的SQL
    • 示例: update order set status=@status where orderId=@orderId

编写SQL语句 ▲ 编写SQL语句

  1. 参数映射
    • 切换到"传入参数"页签
    • 左侧选择表单数据,右侧自动显示SQL中的参数
    • 使用连线将表单字段映射到SQL参数
    • 常量值可直接在右侧代码框中指定,如: status: '完成'

参数映射 ▲ 参数映射

# 数据库插入操作

# 配置步骤

  1. 添加任务节点
    • 拖拽一个任务节点到流程中
    • 将任务类型修改为"数据库插入"

添加任务节点 ▲ 添加任务节点

  1. 编写插入SQL
    • 示例: insert into Product(code,name) values(@code,@name)
    • 系统会自动提取SQL中的参数(@code, @name)

添加任务节点 ▲ 添加任务节点

  1. 参数映射
    • 将表单字段映射到对应的SQL参数

参数映射 ▲ 参数映射

# 返回值说明

  • 使用序列的数据库:返回序列值(Oracle等)
  • 使用自增字段的数据库:返回自增ID值
  • 对于Oracle序列:
    • 在SQL中直接使用id引用序列
    • 无需在参数中传值

# 注意事项

  1. 参数使用@符号前缀标识
  2. 系统会自动解析SQL语句中的参数
  3. 常量值可直接在参数映射区域硬编码
  4. 插入操作返回值可通过流程变量获取

# 最佳实践

  • 对于简单的单表操作,优先使用数据库插件而非ESB
  • 复杂的多表操作或事务处理建议使用专门集成组件
  • 生产环境建议使用命名参数而非字符串拼接防止SQL注入