是否指定 Mapper 文件
在 application.yml 中有没有添加 Mapper 文件的位置
mybatis:
mapper-locations: classpath:mapper/*.xml
具体含义是编译过后的 xml 是否存在?注意查看 target
启动类是否扫描
是否在每个 Dao 接口上加上 @Mapper
推荐在启动类上使用 @MapperScan("dao接口的包名")
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan("com.example.demo.dao") 【这里有没有扫描?】
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
是否配置别名包
在 application.yml 中有没有指定别名包
mybatis:
type-aliases-package: com.example.demo.entity,com.example.demo.model
命名空间/方法名是否匹配
查看 *Mapper.xml 中的 namespace 是否匹配
查看 id = "方法名" 和 Dao 接口中的 方法名是否匹配