# 数据库查询 示例
本示例主要介绍 数据库查询组件 的使用方法。
场景:现有订单表数据和产品表数据,现在需求是需要两个表关联查询,计算出每个订单的总金额后更新Orders表中TotalAmount字段。主要步骤如下:
- 准备数据
- 新建批量作业
- 画布中拖入关系型数据库输入图元、数据库查询图元、计算器图元、插入更新图元
- 配置"关系型数据库输入"组件属性
- 配置"数据库查询"组件属性
- 配置"计算器"组件属性
- 配置"插入更新"组件属性
- 通用配置
- 保存草稿
- 运行
- 提交版本
# 准备数据
-- 创建产品表(存储商品信息)
CREATE TABLE Products (
ProductID INT PRIMARY KEY IDENTITY(1,1), -- 自增主键
ProductName NVARCHAR(100) NOT NULL, -- 产品名称
Price DECIMAL(10, 2) NOT NULL, -- 单价
Stock INT NOT NULL -- 库存
);
-- 创建订单表(存储订单信息)
CREATE TABLE Orders (
OrderID INT PRIMARY KEY IDENTITY(1,1), -- 自增主键
CustomerName NVARCHAR(100) NOT NULL, -- 客户名称
OrderDate DATE NOT NULL, -- 订单日期
ProductID INT NOT NULL, -- 关联的产品ID
Quantity INT NOT NULL, -- 购买数量
TotalAmount DECIMAL(10, 2) , -- 订单总金额(单价*数量)
FOREIGN KEY (ProductID) REFERENCES Products(ProductID) -- 外键约束
);
-- 插入示例产品
INSERT INTO Products (ProductName, Price, Stock)
VALUES
('智能手机', 1999.00, 100),
('笔记本电脑', 5999.00, 50),
('蓝牙耳机', 299.00, 200);
-- 插入示例订单(需先插入产品数据,确保外键存在)
INSERT INTO Orders (CustomerName, OrderDate, ProductID, Quantity, TotalAmount)
VALUES
('张三', '2023-10-01', 1, 2, null),
('李四', '2023-10-02', 2, 1, null),
('王五', '2023-10-03', 3, 5, null);
# 新建批量作业
点击资源树节点上的【...】,选择弹出菜单【新建批量作业】。填写作业名称、选择作业类型"转换"。
# 画布中依次拖入生成记录图元、数据库查询图元、计算器图元、插入更新图元,如下图:
# 配置"关系型数据库输入"组件属性
# 配置"数据库查询"组件属性
在"数据库查询"图元上右键,点击【编辑】按钮,弹出"数据库查询"组件的弹窗。配置项如下图:
# 配置"计算器"组件属性
在"计算器"图元上右键,点击【编辑】按钮,弹出"计算器"组件的弹窗。配置项如下图:
属性设置完毕请点击【确定】按钮。
# 配置"插入更新"组件属性
在"插入更新"图元上右键,点击【编辑】按钮,弹出"插入更新"组件的弹窗。配置项如下图:
# 通用配置
在通用配置中可以配置任务优先级、Worker 分组、命名参数、本地参数、超时告警。
可以参考示例关系型表数据同步示例 中的"通用配置"说明。
# 保存草稿
如果所有组件属性都已设置完毕,点击【保存】按钮,可以看到保存过的历史草稿,并可以随意切换草稿。(草稿只保存最近 10 个)
可以参考示例关系型表数据同步示例 中的"保存草稿"说明。
# 运行
点击【运行】按钮,可以运行已经开发完毕的场景,在日志栏可以看运行日志及运行结果。
# 提交版本
当草稿运行正常后,点击【提交】按钮可以将该版本提交到作业调度,每次修改提交都会生成新的版本,可以看到提交的历史版本,并可以随意切换版本。
提交后的版本,可以在作业调度中进行"定时"调度配置。
可以参考示例关系型表数据同步示例 中的"提交版本"说明。