0
插入我的文檔中讀取here是駱駝 - 駱駝-SQL批處理使用useMessageBodyForSql
「如果批次設置爲true,則入站郵件正文的解釋稍有變化 - 而不是參數,在一個迭代組件需要一個包含參數迭代器的迭代器;外層迭代器的大小決定了批處理大小。「
「從駝峯2.16開始,你可以使用允許使用消息主體作爲SQL語句的選項useMessageBodyForSql,然後必須在關鍵字SqlConstants.SQL_PARAMETERS的頭部提供SQL參數,這允許SQL組件以更加動態的方式工作,因爲SQL查詢來自消息正文。「
我有以下路線:
from("direct:processLine")
.setHeader(SqlConstants.SQL_PARAMETERS, simple("${body}"))
.setBody(constant("INSERT INTO SOME_TABLE "
" (Param1, Param2) " +
" values " +
" (:?Param1,:?Param2)"))
.to("sql://query?useMessageBodyForSql=true&batch=true&dataSource=dataSource");
身體是地圖匹配的參數列表中的鍵/值。
這可以工作,但並不像預期的那樣。
每行都是逐一插入的,而不是預期的批量插入。這種選擇的組合甚至可能嗎?
如果不可能,那麼完成此操作的替代方法是什麼?
我不認爲這是真的。 batch = true確實使用批量插入,因此無需爲此使用mybatis或ibatis。問題是useMessageBodyForSql和batch = true在一起工作不好。 – DKIT