apache-camel - 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>
解决方案
我对mybatis组件的了解很浅,所以我的回答可能不准确!Camel 没有提供捕获 mybatis 查询的内置选项。您只能选择获取语句名称。但是,您能否在发送查询之前记录正文并检查?
如果正文没有查询字符串,我会这样做。为了获取查询字符串,您可以实现一个 bean,您需要在其中导入 mybatis 映射器文件并提取您需要的信息。然后,您可以将其从 bean 本身写入日志,或者您可以将其添加到 Exchange 属性中。
推荐阅读
- android - hwuiTask1 中的致命信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR)
- c# - 如何在 Visual Studio 2019 中更新 Gradle
- c++ - Undefined symbols for architecture x86_64?
- go - How to add permission "view all with link" when you upload files to google drive
- django - Django 序列化器嵌套数据重新格式化
- php - 到 MS Teams 的 PHP / Curl Incoming Webhook 并不总是有效
- hive - Create table name using username in Hive query running in Oozie workflow?
- angular - PrimeNG Full Calendar 11.2 + Angular 11 not working - Cannot find namespace 'FullCalendarVDom'
- javascript - VS Code debug webpack with nodemon plugin: Unbound breakpoints
- python - UnboundLocalError:在理解内赋值之前引用的局部变量