spring-boot 2.x 集成mybatis 解决 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 问题
1.配置文件properties,配置映射 model和xml
#model路径
mybatis.type-aliases-package=com.jx.ekoochak.common.model
#xml映射路径注意是 “/” 方式不是 “.”
mybatis.mapper-locations=com/jx/ekoochak/common/**/*.xml
2.配置启动注入mapper接口类
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan("com.jx.ekoochak")
@MapperScan("com.jx.ekoochak.common.mapper")
public class EkoochakMerchantApplication {
public static void main(String[] args) {
SpringApplication.run(EkoochakMerchantApplication.class, args);
}
}
@MapperScan会去查找对应的mapper接口
3.pom.xml文件中添加如下:
如果你的mapper放在子项目中,则下面内容放到你的子项目pom中
<build>
<resources>
<!-- maven项目中src源代码下的xml等资源文件编译进classes文件夹,
注意:如果没有这个,它会自动搜索resources下是否有mapper.xml文件,
如果没有就会报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.pet.mapper.PetMapper.selectByPrimaryKey-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<!--将resources目录下的配置文件编译进classes文件 -->
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>