先说清楚前提。要让通义灵码自动帮你生成 MyBatis XML 映射文件,背后依赖的核心是:模型必须准确理解你的 Java 实体类、Mapper 接口和数据库表结构之间的关系。如果这一步没对齐,生成的 SQL 就可能出现字段错位、resultMap 漏定义,或者 parameterType 写错——总之,麻烦不断。

确保项目基础结构搭建完毕
首先,确认你的模块已经建好了标准的三层结构:entity 包里有一个 User.java,mapper 接口是 UserMapper.java,数据库里也要有对应的 user 表。通义灵码不会直接去解析本地数据库连接,它依赖的是你提供的表结构注释或实体类字段注解,靠这些来推断列名与类型。
所以,打开 User.java 检查一下:有没有加上 @Table(name = "user") 这类注解?有没有 @ApiModelProperty 或者简单的字段含义注释?比如 // 用户昵称。别小看这条注释,它对生成 SQL 的准确性提升非常明显——相当于给模型提供了一张地图。
在 Mapper 接口中调用通义灵码
把光标定位到 UserMapper.java 的空白处,或者直接放在某个方法声明上方,然后输入 /** 加回车。通义灵码就会弹出提示框,等待你的下一步指令。
在弹出来的建议里,选择“生成 XML 映射”,或者直接输入一句自然语言,比如:“根据这个接口生成对应的 MyBatis XML 映射文件,支持 id、username、email 字段的增删改查”。
通义灵码会根据接口方法名——比如 selectById、insertSelective——自动匹配 SQL 类型,然后生成一个带 和 片段的基础框架。这一步基本可以解放双手,但还需要后续的拼装。
生成 XML 文件并关联到 resources 目录
第一步:在 IDEA 右侧 Project 面板里,右键点击 main → New → Directory,输入 resources/mapper(注意斜杠方向),回车创建嵌套路径。
第二步:在这个目录下右键 → New → File,命名为 UserMapper.xml。
第三步:把通义灵码生成的 XML 内容全选复制,粘贴进去。这里必须重点核对 namespace 的值——它必须等于 com.xxx.mapper.UserMapper(换成你自己的包路径),否则 Spring 启动时会报 BindingException,那种排查起来相当头疼。
第四步:打开 pom.xml,确认 mybatis-spring-boot-starter 版本不低于 2.2.0,同时 resources 目录已经配置在 节点里。如果漏了这一步,打包后 XML 根本不会被加载,白忙一场。
验证 SQL 是否可执行
有两种方式可以快速验证。
方法一:在 UserMapper.xml 里右键 → 选择“Run SQL”(前提是安装了 MyBatisX 插件)。选中一个 标签运行,观察控制台输出的参数绑定和结果集,就能知道 SQL 是否能正常执行。
方法二:在 UserMapper 接口上按 Ctrl+Shift+T 生成单元测试,写一个简单的调用,比如 selectById(1L),看返回的是不是非空的 User 对象。
如果报错“Invalid bound statement”,说明 XML 没有被扫描到。这时候需要检查 application.yml 里的配置:mybatis.mapper-locations=classpath:mapper/*.xml,确保路径正确。另外也别忘了检查 pom.xml 的 resources 配置——很多新手都在这里栽过跟头。
