Este contenido no está disponible en el idioma seleccionado.

Chapter 20. JoSQL


Overview

The JoSQL (SQL for Java objects) language enables you to evaluate predicates and expressions in Apache Camel. JoSQL employs a SQL-like query syntax to perform selection and ordering operations on data from in-memory Java objects — however, JoSQL is not a database. In the JoSQL syntax, each Java object instance is treated like a table row and each object method is treated like a column name. Using this syntax, it is possible to construct powerful statements for extracting and compiling data from collections of Java objects. For details, see http://josql.sourceforge.net/.

Adding the JoSQL module

To use JoSQL in your routes you need to add a dependency on camel-josql to your project as shown in Example 20.1, “Adding the camel-josql dependency”.

Example 20.1. Adding the camel-josql dependency

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

Static import

To use the sql() static method in your application code, include the following import statement in your Java source files:

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

Variables

Table 20.1, “SQL variables” lists the variables that are accessible when using JoSQL.

Table 20.1. SQL variables
NameTypeDescription

exchange

org.apache.camel.Exchange

The current Exchange

in

org.apache.camel.Message

The IN message

out

org.apache.camel.Message

The OUT message

property

Object

the Exchange property whose key is property

header

Object

the IN message header whose key is header

variable

Object

the variable whose key is variable

Example

Example 20.2, “Route using JoSQL” shows a route that uses JoSQL.

Example 20.2. Route using 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

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

© 2024 Red Hat, Inc.