# MyBatis XML 代码片段使用说明

## 安装位置

代码片段文件已放置在 `.vscode/mybatis-xml.code-snippets`，VS Code 和 Cursor 会自动识别。

## 使用方法

### 1. 完整 Mapper XML 模板

在 XML 文件中输入 `mybatis-mapper`，然后按 `Tab` 键，会自动生成完整的 MyBatis Mapper XML 模板。

**占位符说明：**
- `${1}` - Mapper 命名空间（完整包路径）
- `${2}` - 模块名称（如：user, role, dept）
- `${3}` - 实体类名称（如：TbSysUser）
- `${4}` - DTO 完整类路径
- `${5}` - 主键数据库字段名（如：user_id）
- `${6}` - 主键 Java 属性名（如：userId）
- `${7}` - 业务字段数据库字段名
- `${8}` - 业务字段 Java 属性名
- `${9}` - 实体中文名称（如：用户）
- `${10}` - 数据库表名（如：tb_sys_user）

### 2. 单个 SQL 片段

#### ResultMap
输入 `mybatis-resultmap` 生成结果映射

#### Insert
输入 `mybatis-insert` 生成插入语句

#### Update
输入 `mybatis-update` 生成更新语句

#### Delete
输入 `mybatis-delete` 生成删除语句（逻辑删除）

#### Select ById
输入 `mybatis-select-id` 生成根据ID查询

#### Select ByFilter
输入 `mybatis-select-filter` 生成条件查询

#### Select Page
输入 `mybatis-select-page` 生成分页查询

#### Select Count
输入 `mybatis-select-count` 生成计数查询

#### Base Column List
输入 `mybatis-columns` 生成基础列定义

## 示例

### 创建完整的 Mapper XML

1. 新建文件：`TbSysRoleMapper.xml`
2. 输入 `mybatis-mapper` 并按 `Tab`
3. 依次填写占位符：
   - 命名空间：`org.xyzh.system.mapper.role.TbSysRoleMapper`
   - 模块名：`role`
   - 实体名：`TbSysRole`
   - DTO路径：`org.xyzh.common.dto.sys.TbSysRoleDTO`
   - 主键字段：`role_id`
   - 主键属性：`roleId`
   - 业务字段：`role_name`
   - 业务属性：`roleName`
   - 实体中文名：`角色`
   - 表名：`tb_sys_role`

### 快速添加单个 SQL

在已有的 Mapper XML 中，输入对应的前缀（如 `mybatis-insert`），按 `Tab` 即可快速插入对应的 SQL 片段。

## 注意事项

1. 所有模板都包含了 BaseDTO 的通用字段
2. 删除操作使用逻辑删除（设置 deleted = true）
3. 查询时自动过滤已删除的记录（deleted = false）
4. 分页使用 LIMIT 和 OFFSET（PostgreSQL/MySQL 兼容）
5. 时间字段使用 TIMESTAMP 类型
6. 字符串字段使用 VARCHAR 类型

## 自定义

如需修改模板，编辑 `.vscode/mybatis-xml.code-snippets` 文件即可。

