Solução de erro de instrução vinculada inválida (não encontrada)


1. Descrição do problema

Ao aprender mybatis, você precisa criar um novo projeto, mas quando a configuração é concluída, um erro de declaração de limite inválido (não encontrado) é relatado.
O que isso significa?
Ou seja, o arquivo mapper.xml não corresponde à interface do mapper~
insira a descrição da imagem aqui

Dois, o processo de solução

Eu li muitos problemas que foram resumidos pelos grandes. Nada mais é do que um namespace errado, interface de mapeador ou nome de arquivo xml que não corresponde à primeira classe. Depois de muitas investigações, descobri que não há tal problema = = esse é o problema no
arquivo de configuração do mybatis Afinal, o arquivo xml e a instrução de mapeamento da interface estão escritos aqui.
insira a descrição da imagem aqui
Esta é a parte do mapeamento e a estrutura do arquivo no meu arquivo de configuração do mybatis

Três, o ponto chave está aqui!

Como todos sabemos, para criar um arquivo xml agora deve-se criar uma pasta com o mesmo nome do pacote onde a interface está localizada no arquivo de recursos. Portanto, quando não houver problemas em outros lugares, você deve considerar se a pasta do mapeador em seus recursos está aninhada como eu! ! Então, se você não criar pastas uma a uma ao criar, mas quiser criar uma pasta aninhada de várias camadas diretamente, criará uma única pasta chamada "com.tim.mapper" e, em seguida, será Report me this erro. Mesmo que os resultados da pasta criados por esses dois métodos sejam da mesma forma!
Então, a maneira correta:
1. Crie o primeiro arquivo primeiro. insira a descrição da imagem aqui2. Em seguida, construa a segunda pasta. insira a descrição da imagem aqui
3. Neste ponto, pode-se ver que a pasta multicamadas construída neste momento (como mostrado na figura abaixo) é o mesmo que o "com.tim.mapper" anterior A pasta chamada: com.tim.mapper é essencialmente diferente (embora pareça quase igual ==)
insira a descrição da imagem aqui
4. Mas quando você mapeia para pesquisar, você só pode encontrar os arquivos em a pasta de várias camadas ~

2023.01.28 Suplemento -----------------------------------
Acabei de ver que alguns marmanjos apontaram o fundamental problema nos comentários: O separador usado para criar subarquivos na pasta de recursos é "/", que é diferente do separador "." usado para criar subarquivos na pasta java. Portanto: crie outro arquivo e use "com/tim/lala" insira a descrição da imagem aqui
para obter o mesmo efeito de criá-lo separadamente~
insira a descrição da imagem aqui

Resumir

A lição de sangue e lágrimas, quando você constrói uma pasta multi-camada em recursos, você não deve construí-la diretamente como na pasta da interface do mapeador, você deve separá-la (ou usar um método suplementar para construí-la), espero que seja finalmente resolvido às duas horas da manhã. As perguntas podem ajudá-lo.

Acho que você gosta

Origin blog.csdn.net/weixin_46019348/article/details/124854909
Recomendado
Clasificación