
示例:“数据库查找”调解原语
“数据库查找”原语用于从数据库中搜索值,并将其存储在消息中。此示例说明如何在调解流编辑器中使用“数据库查找”原语。
在示例中,我们希望从员工数据库中检索员工的工资。让我们假设以下情况:
- 客户机应用程序将员工的序列号 (049728) 传入到消息体的 serialNumber 字段中。
- 在 EmployeeDatabase 中存在 serialNumber = '049728' 且 salary = '$50,000' 的员工记录。
- 我们希望从数据库中检索员工的工资,方法是使用消息的 serialNumber 字段在数据库中查找记录。
- 然后,我们希望从数据库中检索员工记录的 SALARY 列的值,并将其置于消息体中。
select SALARY from EMPLOYEE_TABLE where SERIAL_NUMBER = '049728'
类型为 long 的结果 '50000' 将存储在消息体的 salary 字段中。

在“属性”视图的“详细信息”页面中,为原语指定以下这些属性。
在数据源字段中,输入数据源的 JNDI 名称。在该示例中为 jdbc/sample/EmployeeDatabase
在表字段中,输入数据库表的名称,包括模式名称。在该示例中为 myschema.EMPLOYEE_TABLE
在搜索列字段中,输入与搜索字符串匹配的数据库列的名称。在该示例中,此列为 SERIAL_NUMBER
在搜索位置字段中,输入消息体中字段的 XPath 位置。此字段的值是搜索字符串。单击编辑以启动 XPath 表达式构建器来构建所需的 XPath 表达式。在本例中,这是消息体中 serialNumber 的值 (049728)。
在表中,单击添加以定义将从其中检索值的数据库列、值的信息类型以及消息中将存储检索到的值的位置。每个数据元素具有三个属性:
- 列指定要从其中获取元素值的数据库列的名称。在该示例中,这是 SALARY。
- 类型指定元素值的类型。在该示例中,类型为 int。
- 目标位置指定 XPath 1.0 表达式,描述存储数据库值的消息元素的路径位置。该 XPath 表达式的求值结果必须是消息中的单个元素。在该示例中,检索到的工资值将存储在消息体中的 salary 字段内。
有关更多信息,请参阅“数据库查找”调解原语。