Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.myapp.camel.spring.route;
- import java.sql.SQLException;
- import java.util.List;
- import javax.sql.DataSource;
- import org.apache.camel.Exchange;
- import org.apache.camel.builder.RouteBuilder;
- import org.apache.camel.component.sql.SqlComponent;
- import org.json.simple.JSONArray;
- import org.json.simple.JSONObject;
- import org.json.simple.parser.JSONParser;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.jdbc.datasource.DriverManagerDataSource;
- import org.springframework.stereotype.Component;
- @Component
- public class RestWSToDBRoute extends RouteBuilder {
- @Autowired
- private DataSource dataSource;
- @Bean
- public DataSource dataSource() {
- DriverManagerDataSource dataSource=new DriverManagerDataSource();
- dataSource.setUrl("jdbc:mysql://localhost:3306/hcl");
- dataSource.setUsername("admin");
- dataSource.setPassword("admin");
- return dataSource;
- }
- @Bean
- public SqlComponent sql() {
- SqlComponent sqlComponent=new SqlComponent();
- sqlComponent.setDataSource(dataSource);
- return sqlComponent;
- }
- public void configure() throws Exception {
- onException(SQLException.class, Exception.class).handled(true).log("Exception While inserting messages.")
- .process(new ExceptionProcessor());
- from("timer:learnTimer?period=10s")
- .to("log:?level=INFO&showBody=true")
- .setHeader(Exchange.HTTP_METHOD, constant("GET"))
- .setHeader(Exchange.HTTP_URI, simple("http://localhost:8888/orders"))
- .to("http://localhost:8888/orders").split(method(JsonArraySplitter.class))
- .to("log:?level=INFO&showBody=true")
- .process((Exchange exchange)->{
- String body=(String) exchange.getIn().getBody();
- JSONParser parser=new JSONParser();
- JSONObject jsonObject=(JSONObject)parser.parse(body);
- Integer orderid= Integer.parseInt((String)jsonObject.get("orderid"));
- String orderName=(String)jsonObject.get("ordername");
- String insertQuery="insert INTO orders values(".concat("'").concat(String.valueOf(orderid).concat("'").concat(",").concat("'")
- .concat(orderName).concat("'").concat(")"));
- exchange.getIn().setBody(insertQuery);
- })
- .to("jdbc:dataSource")
- .to("sql:select * from orders");
- }
- }
Add Comment
Please, Sign In to add comment