SQL 구성 요소를 사용하면 JDBC 쿼리를 사용하여 데이터베이스를 사용할 수 있습니다. 이 구성 요소와 JDBC 구성 요소의 차이점은 SQL의 경우 쿼리는 끝점의 속성이며 쿼리에 전달된 매개 변수로 메시지 페이로드를 사용한다는 것입니다.
CamelContext camelctx = new DefaultCamelContext();
camelctx.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("sql:select name from information_schema.users?dataSource=java:jboss/datasources/ExampleDS")
.to("direct:end");
}
});
CamelContext camelctx = new DefaultCamelContext();
camelctx.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("sql:select name from information_schema.users?dataSource=java:jboss/datasources/ExampleDS")
.to("direct:end");
}
});
Copy to ClipboardCopied!Toggle word wrapToggle overflow
참고
위에 표시된 JNDI 데이터 소스 조회는 DefaultCamelContext 를 구성하는 경우에만 작동합니다. 아래 CdiCamelContext 및 SpringCamelContext 예제를 참조하십시오.
camel-cdi 구성 요소와 함께 사용하면 Jarkarta EE 주석이 있으면 Camel에서 데이터 소스를 사용할 수 있습니다. 이 예에서는 Camel이 원하는 데이터 소스를 검색할 수 있도록 @Named 주석을 사용합니다.
public class DatasourceProducer {
@Resource(lookup = "java:jboss/datasources/ExampleDS")
DataSource dataSource;
@Produces
@Named("wildFlyExampleDS")
public DataSource getDataSource() {
return dataSource;
}
}
public class DatasourceProducer {
@Resource(lookup = "java:jboss/datasources/ExampleDS")
DataSource dataSource;
@Produces
@Named("wildFlyExampleDS")
public DataSource getDataSource() {
return dataSource;
}
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow
이제 camel-sql 엔드포인트 구성의 dataSource 매개변수를 통해 데이터 소스를 참조할 수 있습니다.
@ApplicationScoped
@ContextName("camel-sql-cdi-context")
@Startup
public class CdiRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
from("sql:select name from information_schema.users?dataSource=wildFlyExampleDS")
.to("direct:end");
}
}
@ApplicationScoped
@ContextName("camel-sql-cdi-context")
@Startup
public class CdiRouteBuilder extends RouteBuilder {
@Override
public void configure() throws Exception {
from("sql:select name from information_schema.users?dataSource=wildFlyExampleDS")
.to("direct:end");
}
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow