调试

MyBatis调试

识别 Mapper 方法、还原 SQL,并直接执行查看结果。

MyBatis 调试用于直接识别 Mapper 方法,根据用户填写的参数还原出最终 SQL,并在选择数据源后直接执行 SQL、查看结果集。它适合在不启动完整 HTTP 调用链的情况下,快速验证 Mapper 参数、动态 SQL 和数据库返回结果。

功能概览

  • 自动识别当前方法是否为 MyBatis Mapper 方法。
  • 根据方法参数还原 MyBatis 最终执行 SQL。
  • 支持预览 SQL 和参数绑定结果。
  • 选择数据源后可直接执行 SQL,并查看查询结果或执行反馈。
  • 点击 MyBatis 图标可跳转到 XML 中对应的 Mapper 方法。
视频加载中

参数构造

进入 MyBatis 调试后,插件会根据 Mapper 方法签名生成参数输入区域。用户填写参数后,Cool Request 会把参数传入 MyBatis 解析流程,用于处理 #{}${}ifforeachwhere 等动态 SQL 逻辑。

基础参数示例:

10001

对象参数示例:

{
  "userName": "Tom",
  "status": 1,
  "startTime": "2026-06-01 00:00:00",
  "endTime": "2026-06-05 23:59:59"
}

集合参数示例:

[10001, 10002, 10003]

提示

如果 Mapper 方法有多个参数,建议在方法参数上使用 @Param 指定名称,便于动态 SQL 和参数还原稳定匹配。

SQL 还原

填写参数后,可预览根据当前参数还原出的 SQL。插件会结合 Mapper 方法、XML 或注解 SQL、动态标签和用户参数,生成本次调用实际对应的 SQL 内容。

例如 Mapper 方法:

List<User> selectByCondition(UserQuery query);

XML:

<select id="selectByCondition" resultType="com.example.User">
    select * from user
    <where>
        <if test="userName != null and userName != ''">
            and user_name = #{userName}
        </if>
        <if test="status != null">
            and status = #{status}
        </if>
    </where>
</select>

当参数为:

{
  "userName": "Tom",
  "status": 1
}

SQL 预览会还原出当前参数命中的动态 SQL 分支,方便检查条件是否生效、参数是否正确绑定。

注意

SQL 还原结果取决于当前填写的参数。参数为空、字段名不匹配或 @Param 名称不一致时,动态 SQL 分支可能不会按预期生成。

选择数据源并执行

如果只需要检查 SQL,可直接查看 SQL 预览;如果需要验证数据库返回结果,可选择一个已配置的数据源后执行。

执行流程:

  1. 打开 Mapper 方法的 MyBatis 调试入口。
  2. 填写方法参数。
  3. 预览还原后的 SQL。
  4. 选择要执行的数据源。
  5. 点击执行,查看结果集、影响行数或异常信息。

查询语句执行后会展示结果集,便于直接确认数据是否符合预期。更新、删除、插入等语句会展示执行反馈,便于确认影响行数。

警告

insertupdatedelete 等有副作用的 SQL,执行前请确认数据源和参数,避免误操作生产或重要数据。

跳转 XML 方法

对于 XML Mapper,点击 MyBatis 图标可以跳转到 XML 中对应的方法位置。这个入口适合在调试 SQL 时快速检查原始 XML、动态标签和字段映射。

跳转依赖 Mapper 接口方法与 XML 的映射关系,通常包括:

  • XML namespace 与 Mapper 接口全限定名一致。
  • XML 语句 id 与 Mapper 方法名一致。
  • 项目中的 XML 文件已被 IDE 正确识别。

例如:

<mapper namespace="com.example.mapper.UserMapper">
    <select id="selectById" resultType="com.example.User">
        select * from user where id = #{id}
    </select>
</mapper>

UserMapper.selectById 方法上点击 MyBatis 图标后,可直接跳转到 XML 中的 selectById 语句。

调试建议

  • 先预览 SQL,再选择数据源执行,减少误操作。
  • 多参数 Mapper 方法优先使用 @Param,避免参数名解析不稳定。
  • 动态 SQL 没有按预期生成时,重点检查参数字段名、空值判断和 XML 中的 test 表达式。
  • 执行查询前确认数据源环境,执行写操作前确认 SQL 和参数。
  • 需要修改 SQL 时,可通过 MyBatis 图标跳转到 XML 方法位置后再调整。