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發現微博等,我沒有使用,我認爲我的錯誤是不相關的。
任何幫助。
應該有一些錯誤/服務器終端,在例外情況某些異常情況發生時, - 當某些東西沒有插入或從關聯的數據庫中檢索時。當您試圖插入數據庫或從數據庫中檢索時,您是否在服務器日誌上獲取任何內容 - 堆棧跟蹤? – Tiny
如果服務器端出現錯誤,那麼我認爲我試過測試數據源的基本選擇查詢也應該失敗吧? – Jayesh
我嘗試了MySQL,同樣的問題仍然存在。我似乎在駱駝api中缺少一些東西。 – Jayesh