必须先初始化项目索引并绑定数据库连接,再用中文注释描述需求,才能生成结构正确、字段准确、可被MyBatis加载的Mapper.xml文件。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想在 VSCode 里不写一行 XML 标签,只靠自然语言描述就生成可直接用的 MyBatis Mapper.xml 文件,必须绕开插件默认的“纯文本补全”陷阱——它不会自动识别 SQL 上下文、表结构或命名空间,必须人工注入关键约束和上下文才能让 CodeGeeX 输出结构正确、属性对齐、能被 MyBatis 加载的 XML。
准备项目级语义上下文
CodeGeeX 默认只看当前文件,而 MyBatis XML 的 <mapper namespace=""> 必须与接口全限定名一致,<resultMap> 的 type 必须指向真实实体类。不提前加载项目结构,生成的 XML 会漏 namespace、错 type、字段名拼写错误。
打开 VSCode,确保工作区根目录包含 pom.xml 或 build.gradle;
点击左下角 CodeGeeX 图标 → 选择 “Initialize Project Index”;
等待右下角提示 “Indexing completed: X files processed”,此时 【.vscode/codegeex-index/ 目录已写入符号表】;
重启 VSCode,否则索引不生效。
手动绑定数据库连接以获取字段智能提示
仅靠索引无法提示数据库真实字段名。MyBatis XML 中的 <select> 内容本质是 SQL,必须让 SQLTools 知道这张表长什么样,否则 CodeGeeX 会凭空编字段,比如把 user_name 写成 username。
安装 SQLTools 插件及对应数据库驱动(如 MySQL);
在 settings.json 中添加:
"sqltools.enabledLanguages": ["xml"], "sqltools.connections": [];
右键目标 XML 文件 → “SQLTools: Connect to Connection” → 选择已配置的数据库实例;
【必须为 mapper.xml 文件单独绑定一次连接,不能复用其他 .sql 文件的绑定】,否则字段提示失效。
生成可运行的 Mapper.xml 文件
新建空白文件,保存为 UserMapper.xml(命名必须与接口名一致,否则后续跳转断裂);
在文件顶部输入中文注释,例如:“生成 UserMapper.xml,namespace 为 com.example.mapper.UserMapper,查询所有用户,字段包括 id、user_name、email、create_time,返回 User 实体类,使用 resultMap 映射驼峰字段”;
将光标置于注释正下方,按 Ctrl+Enter 调出 CodeGeeX 面板;
点击 “生成代码”,等待返回完整 XML;
检查生成内容:确认 <mapper namespace="com.example.mapper.UserMapper"> 存在;<resultMap id="BaseResultMap" type="com.example.entity.User"> 中的 type 路径真实存在;<result column="user_name" property="userName"/> 驼峰映射正确;
按 Tab 插入代码,保存文件。


















