第 20 章 JoSQL


概述

JoSQL (SQL for Java objects)语言允许您评估 Apache Camel 中的 predicates 和表达式。JoSQL 采用类 SQL 的查询语法,对来自内存 Java 对象 进行数据进行选择和排序操作,JoSQL 不是 数据库。在 JoSQL 语法中,每个 Java 对象实例都被视为表行,每个对象方法被视为列名称。使用这种语法时,可以构造功能强大的 语句,用于从 Java 对象集合中提取和编译数据。详情请查看 http://josql.sourceforge.net/

添加 JoSQL 模块

要在路由中使用 JoSQL,您需要在项目中添加对 camel-josql 的依赖,如 例 20.1 “添加 camel-josql 依赖项” 所示。

例 20.1. 添加 camel-josql 依赖项

<!-- Maven POM File -->
...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-josql</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

静态导入

要在应用程序代码中使用 sql () 静态方法,请在 Java 源文件中包含以下导入声明:

import static org.apache.camel.builder.sql.SqlBuilder.sql;

变量

表 20.1 “SQL 变量” 列出在使用 JoSQL 时可访问的变量。

表 20.1. SQL 变量
Name类型描述

exchange

org.apache.camel.Exchange

当前交换

in

org.apache.camel.Message

IN 消息

out

org.apache.camel.Message

OUT 消息

属性

对象

其密钥为属性的 Exchange 属性

header

对象

IN 消息标头,其密钥是 标头

变量

对象

变量,密钥是 变量

Example

例 20.2 “使用 JoSQL 的路由” 显示使用 JoSQL 的路由。

例 20.2. 使用 JoSQL 的路由

<camelContext>
  <route>
    <from uri="direct:start"/>
    <setBody>
      <language language="sql">select * from MyType</language>
    </setBody>
    <to uri="seda:regularQueue"/>
  </route>
</camelContext>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.