第 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 | 类型 | 描述 |
|---|---|---|
|
|
| 当前交换 |
|
|
| IN 消息 |
|
|
| 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>