Ao integrar MyBatis no SpringBoot, pode haver um problema que o arquivo Mapper.xml não pode ser verificado
Erros comuns são:
org.apache.ibatis.binding.BindingException: instrução vinculada inválida (não encontrada): o nome completo do método da interface
Geralmente, esse tipo de erro ocorre porque não está mapeado para o arquivo mapper.xml:
Direção de solução de problemas:
1. A interface do mapeador e o caminho correspondente do arquivo xml estão no mesmo diretório?
Por exemplo: o nome completo da interface do mapeador: com.xxx.mybatis.mapper.xxxMapper
O xxxMapper.xml correspondente é o mesmo no pacote com.xxx.mybatis.mapper no diretório java, conforme mostrado na figura:
Neste momento:
Há um problema oculto: o projeto maven será empacotado durante a execução e os recursos xml no diretório java serão ignorados durante a compactação.
A solução:
A configuração no pom.xml é a seguinte:
1 < construção > 2 < recursos > 3 < recurso > 4 < diretório > src / main / java </ diretório > 5 < inclui > 6 < incluem > ** / *. Xml </ include > 7 </ inclui > 8 < / resource > 9 < resource > 10 < diretório > src / main / resources </ diretório> 11 </ resource > 12 </ resources > 13 </ build >
2. Se não estiver no mesmo diretório, mas o arquivo xml estiver no diretório de recursos, verifique se a interface do mapeador corresponde ao arquivo xml?
A imagem acima é a correspondente, que pode ser digitalizada neste momento
Se não corresponder, você também pode personalizar o caminho da verificação:
Em application.properties, a configuração é a seguinte:
mybatis.mapper-locations = classpath: o caminho que você deseja verificar, como com / xxx / mybatis / *. xml
Até agora: o problema deve ser resolvido
Alguns parceiros pequenos podem ter sido transferidos do ssm. Estou curioso para saber que o SqlSessionFactor e o MapperScan configurados anteriormente se foram, isso é desnecessário?
Aprenda sobre os princípios de montagem automática do SpringBoot, e não vou entrar em detalhes aqui.
mybatis-spring-boot-starter também fornece a classe de montagem automática correspondente