首页 > 解决方案 > Camel - 使用 MYBATIS 组件时,如何使用 java dsl 在骆驼路由中记录选择查询?

问题描述

我想在调用数据库之前记录选择查询,以提高日志的可读性以供参考。我正在使用 mybatis 组件。我想知道,如果有任何内置的驼峰头或mybatis组件头可以用来记录查询。

**CAMEL ROUTE**
from("timer://pollTheDatabase?delay=50s")
.routeId("db-pooling-route")
.to("mybatis:queryToSelectData?statementType=SelectOne");

**MAPPER**
@Mapper
public interface DBMapper{
   public void queryToSelectData();
}

**MAPPER XML**
<select id="queryToSelectData" resultMap="Result">
    SELECT * FROM ACCOUNT AND ROWNUM =1
</select>

标签: apache-camelmybatis

解决方案


我对mybatis组件的了解很浅,所以我的回答可能不准确!Camel 没有提供捕获 mybatis 查询的内置选项。您只能选择获取语句名称。但是,您能否在发送查询之前记录正文并检查?

如果正文没有查询字符串,我会这样做。为了获取查询字符串,您可以实现一个 bean,您需要在其中导入 mybatis 映射器文件并提取您需要的信息。然后,您可以将其从 bean 本身写入日志,或者您可以将其添加到 Exchange 属性中。


推荐阅读