Diretório de artigos
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~
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.
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. 2. Em seguida, construa a segunda pasta.
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 ==)
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"
para obter o mesmo efeito de criá-lo separadamente~
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.