Muhtemelen yerleştirmeden önce yükünüzün bir miktar yeniden yapılandırılması gerekir, bu yüzden muhtemelen gövdeyi ayarlamak için herhangi bir yöntem kullanarak bir dönüşüm yapmak için bir sorun olmamalı uygun INSERT ifadesine.
Önemli olan, gelen mesajınızın ne tür bir yük yapısına sahip olduğudur. Temel durumda - mesajınız karmaşık veri yapılarını içeren durumunda
// 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)");
, bu kod elbette daha karmaşık olacaktır
oldukça basit olmalıdır, ancak düzenli uygulama üretecektir hemen hemen aynı yolu - bir dize var SQL sorguları.
Eğer
<jdbc:embedded-database id="testdb" type="DERBY">
<jdbc:script location="classpath:sql/init.sql"/>
</jdbc:embedded-database>
atıfta olan sınıf yolu örnek Basitçe gömülü bir veritabanı sunucusu (Apache Derby) başlatarak JDBC bileşeni test ve (bazı ilk veri ile sql/init.sql bunu doldurmak için nasıl gösterir dosya). Bu bölüm, çekirdek jdbc bileşeninin bir parçası değildir, yalnızca bir DB sunucusunu yapılandırmaya ve JDBC bağlantı özelliklerini ayarlamaya gerek kalmadan bir örnek almak ve çalıştırmak için yalnızca belgelerde yer almaktadır.
Daha karmaşık senaryolar için SQL bileşenini kullanmak isteyebilirsiniz.
@AndrewThompson ben birkaç örnek aradım ama onları anlamak mümkün değilim. Mesaj gövdesini eklemek için herhangi bir spesifik bulamadım. –
@AndrewThompson http://camel.apache.org/jdbc.html örneğini anlayamadım. İşte Bahar örneği benim için kafa karıştırıcı. Nedenini almadım, neden bu dosyayı sql sorgusu olarak ayarlıyor ve yine sınıf yolundan bazı sorguları içe aktarıyor. Burada belirtilen bir ekleme sorgusu örneği yok.
–
jdbc bileşeni, bir SQL sorgusu kaynağı olarak gövdeyi kullanır. Vücudunuzdaki verileri aktarmak istiyorsanız SQL (http://camel.apache.org/sql-component.html) veya MyBatis (http: //camel.apache) kullanmayı düşünün.org/mybatis.html) bileşen –