325.10. sample
아래 샘플에서 쿼리를 실행하고 결과를 List
of rows로 검색합니다. 여기서 각 행은 Map<String, Object
및 키가 열 이름입니다.
먼저 샘플에 사용할 테이블을 설정했습니다. 이는 단위 테스트를 기반으로 하므로 java에서 수행합니다.
SQL 스크립트 createAndPopulateDatabase.sql
은 아래 설명과 같습니다.
그런 다음 경로와 sql
구성 요소를 구성합니다. sql
끝점 앞에 직접
끝점을 사용합니다. 이를 통해 URI를 사용하여 직접
엔드포인트에 교환을 보낼 수 있습니다. 이 경우 클라이언트가 긴 sql
URI보다 훨씬 쉽게 사용할 수 있습니다. :
DataSource
는 레지스트리에서 조회되므로 표준 Spring XML을 사용하여 DataSource
를 구성할 수 있습니다.
그런 다음 메시지를 직접
끝점으로 실행하여 데이터베이스를 쿼리하는 sql
구성 요소로 메시지를 실행합니다.
Spring XML에서 DataSource
를 다음과 같이 구성할 수 있습니다.
<jee:jndi-lookup id="myDS" jndi-name="jdbc/myDataSource"/>
<jee:jndi-lookup id="myDS" jndi-name="jdbc/myDataSource"/>
325.10.1. 명명된 매개변수 사용 링크 복사링크가 클립보드에 복사되었습니다!
Camel 2.11에서 사용 가능
아래 지정된 경로에서 프로젝트 테이블에서 모든 프로젝트를 가져오고자 합니다. SQL 쿼리에 2개의 이름이 지정된 매개 변수 :#lic 및 :#min이 있습니다.
그런 다음 Camel은 메시지 본문 또는 메시지 헤더에서 이러한 매개변수를 조회합니다. 위의 예제에서는 named 매개변수에 대해 상수 값
로 두 개의 헤더를 설정합니다.
from("direct:projects") .setHeader("lic", constant("ASF")) .setHeader("min", constant(123)) .to("sql:select * from projects where license = :#lic and id > :#min order by id")
from("direct:projects")
.setHeader("lic", constant("ASF"))
.setHeader("min", constant(123))
.to("sql:select * from projects where license = :#lic and id > :#min order by id")
메시지 본문이 java.util.Map
인 경우 이름이 지정된 매개변수가 본문에서 가져옵니다.
from("direct:projects") .to("sql:select * from projects where license = :#lic and id > :#min order by id")
from("direct:projects")
.to("sql:select * from projects where license = :#lic and id > :#min order by id")