一个用于 VS Code 的 MyBatis 辅助扩展。当前提供以下功能:
- 将集成终端中的 MyBatis
Preparing、Parameters 日志还原为可执行 SQL。
- 在 Java Mapper 接口与 MyBatis Mapper XML 之间相互跳转。
Mapper 接口与 XML 相互跳转
扩展按照 MyBatis 的标准对应关系查找目标:
- XML 的
namespace 对应 Java 接口全限定名。
- XML 的 SQL 语句
id 对应 Java 接口方法名。
例如:
package com.example.user;
public interface UserMapper {
User findById(Long id);
}
<mapper namespace="com.example.user.UserMapper">
<select id="findById" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
</mapper>
支持以下跳转:
- Java 接口名 → XML
namespace。
- Java 方法名 → XML 中同名的
select、insert、update 或 delete。
- XML
namespace → Java 接口。
- XML SQL 语句
id → Java 同名方法。
使用方式
可以使用任意一种方式:
- 点击接口、方法或 XML 语句上方的 CodeLens 跳转提示。
- 在对应名称上使用
Ctrl/Cmd + 点击或 F12。
- 将光标放到对应声明上,在命令面板执行:
MyBatis Toolkit: 跳转到 Mapper 接口/XML。
首次跳转时扩展会在后台建立工作区索引;后续会监听 Java/XML 文件变化。
MyBatis 日志转 SQL
在 VS Code 集成终端中找到一组 MyBatis 日志:
==> Preparing: SELECT * FROM user WHERE id = ? AND name = ?
==> Parameters: 1(Integer), Tom(String)
- 按住
Ctrl(Windows/Linux)或 Cmd(macOS),点击 Preparing 行。
- 使用相同方式点击对应的
Parameters 行。
- 两行的点击顺序不限。
- 扩展会打开“MyBatis SQL”面板,点击“复制 SQL”即可。
还原结果:
SELECT * FROM user WHERE id = 1 AND name = 'Tom'
当前限制
- Mapper 导航第一版只解析 Java 接口,暂不解析 Kotlin Mapper。
- XML 导航支持
select、insert、update 和 delete 的 id。
- Java 方法重载或多个同名 XML 语句会弹出目标选择列表。
- Mapper XML 的
namespace 必须与 Java 接口全限定名一致。
- 日志转 SQL 仅支持 VS Code 集成终端。
- 每条
Preparing 和 Parameters 日志需要位于单独一行。
- 扩展不会读取终端历史;必须明确点击需要配对的两行。
- 当前不连接数据库,也不会直接执行 SQL。
开发
npm install
npm test
在 VS Code 中按 F5 可以启动 Extension Development Host。
声明
本扩展是独立的社区项目,与 MyBatis 官方不存在隶属或背书关系。
扩展图标基于 MyBatis 官方网站提供的 MyBatis Logo 制作,MyBatis 名称及 Logo
归其相应权利人所有。