解決org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.mapper.方法
在Spring與Mybatis整合時,可能會遇到這樣的報錯
原因:
其原因為mapper路徑的映射錯誤,表示在嘗試執行某個 Mapper 接口的方法時,MyBatis 無法找到對應的 SQL 語句。
造成該錯誤的可能方式為:
? ? ? ?在mapper接口文件上使用了@Mapper注解,在controller調用方法時則無法找到該方法,只能使用注解方式寫sql語句才能被識別到,生成到mapper.xml文件中的sql語句無法被使用
修改方法:
1.將@Mapper注解改為@Reposity
2.在MybatisConfig配置文件中加入掃描mapper映射文件的語句
不要覺得在 MybatisConfig配置文件中的MapperScannerConfigurer類加入mapperScannerConfigurer.setBasePackage("com.xxx.mapper");,程序就可以掃描到xxxMapper.xml文件了,其實不然,還需要在SqlSessionFactoryBean類中加入一個語句:
sqlSessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));這樣才能正確掃描到xxxMapper.xml文件和Mapper文件。