2015-01-03 150 views
1

我正在瀏覽Apache Camel並希望將數據插入數據庫。 我的數據庫是SqlServer。 Apache的駱駝版本是2.14.1Apache Camel JDBC插入

這是我試過至今,

import javax.sql.DataSource; 

import org.apache.camel.CamelContext; 
import org.apache.camel.builder.RouteBuilder; 
import org.apache.camel.impl.DefaultCamelContext; 
import org.apache.camel.impl.SimpleRegistry; 
import org.apache.commons.dbcp.BasicDataSource; 

public class file2DB { 

    public static void main(String[] args) throws Exception { 
     final String url = "jdbc:sqlserver://localhost:1433;databaseName=TestDB"; 

     DataSource datasource = setupDataSource(url); 
     SimpleRegistry simpleregistry = new SimpleRegistry(); 
     simpleregistry.put("DataSource", datasource); 
     CamelContext context = new DefaultCamelContext(simpleregistry); 
     context.addRoutes(new file2DB().new MyRouteBuilder()); 

     context.start(); 
     Thread.sleep(20000); 
     context.stop(); 
    } 

    class MyRouteBuilder extends RouteBuilder { 
     @Override 
     public void configure() throws Exception { 
      try { 

       from("direct:myTable") 
       .setBody(constant("INSERT INTO employee1(empId,payrollId) VALUES('1234','4567')")) 
       .to("jdbc:DataSource"); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } 
    } 
    private static DataSource setupDataSource(String url){ 
     BasicDataSource basicDataSource = new BasicDataSource(); 
     basicDataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     basicDataSource.setUsername("sa"); 
     basicDataSource.setPassword("*****"); 
     basicDataSource.setUrl(url); 
     return basicDataSource; 
    } 

} 

我使用下面的代碼檢查數據源連接和我得到的結果,所以沒有問題,與它的連接看來。

 Connection con=null; 
     try { 
      con = basicDataSource.getConnection(); 
      Statement st = con.createStatement(); 
      ResultSet rs = st.executeQuery("select * from employee1"); 

      while (rs.next()) { 
       System.out.println(rs.getString(2)); 
      } 

     } catch (SQLException e) { 
      e.printStackTrace(); 
     } 

我沒有收到任何錯誤,數據也沒有插入表中。 我也試過「選擇」查詢也是不起作用。

我試過記錄器,它給我日誌中的許多錯誤沒有類defn發現微博等,我沒有使用,我認爲我的錯誤是不相關的。

任何幫助。

+0

應該有一些錯誤/服務器終端,在例外情況某些異常情況發生時, - 當某些東西沒有插入或從關聯的數據庫中檢索時。當您試圖插入數據庫或從數據庫中檢索時,您是否在服務器日誌上獲取任何內容 - 堆棧跟蹤? – Tiny

+0

如果服務器端出現錯誤,那麼我認爲我試過測試數據源的基本選擇查詢也應該失敗吧? – Jayesh

+0

我嘗試了MySQL,同樣的問題仍然存在。我似乎在駱駝api中缺少一些東西。 – Jayesh

回答