とにかくそれを挿入する前に、おそらくペイロードの再構築を行う必要があるので、Camelの任意のメソッドを使用して変換を実行し、本体を適切なINSERTステートメントに設定することに問題はないはずです。
重要なのは、着信メッセージがどのようなペイロード構造を持っているかです。基本的な場合-それは文字列です-それはかなり単純でなければなりません
// In a Java bean/processor before the JDBC endpoint.
// Update: make sure to sanitize the payload from SQL injections if it contains user inputs or external data not generated by trusted sources.
exchange.getIn().setBody("INSERT INTO MYTABLE VALUES('" + exchange.getIn().getBody(String.class) + "', 'fixedValue', 1.0, 42)");
メッセージに複雑なデータ構造が含まれている場合、このコードはもちろんより複雑になりますが、通常のアプリケーションがSQLクエリを生成するのとほぼ同じ方法です。
参照しているクラスパスの例
<jdbc:embedded-database id="testdb" type="DERBY">
<jdbc:script location="classpath:sql/init.sql"/>
</jdbc:embedded-database>
組み込みのデータベースサーバー(Apache Derby)を起動し、初期データ(sql / init.sqlファイル)を入力して、JDBCコンポーネントをテストする方法を簡単に示します。この部分は、実際にはコアjdbcコンポーネントの一部ではありませんが、DBサーバーを構成したり、JDBC接続プロパティを設定したりせずにサンプルを起動して実行するためのドキュメントに含まれています。
そうは言っても、より複雑なシナリオではSQLコンポーネントを使用することをお勧めします。