[SpringBoot] [Mybatis] integración de springboot mybatis no puede escanear la solución Mapper.xml

Al integrar MyBatis en SpringBoot, puede haber un problema de que el archivo Mapper.xml no se pueda escanear

Los errores comunes son:

  org.apache.ibatis.binding.BindingException: instrucción enlazada no válida (no encontrada): el nombre completo del método de interfaz

En general, este tipo de error se produce porque no está asignado al archivo mapper.xml:

Dirección de resolución de problemas:

  1. ¿Están la interfaz del mapeador y la ruta del archivo xml correspondiente en el mismo directorio?

  Por ejemplo: el nombre completo de la interfaz del asignador: com.xxx.mybatis.mapper.xxxMapper

  El xxxMapper.xml correspondiente es el mismo bajo el paquete com.xxx.mybatis.mapper en el directorio java, como se muestra en la figura:

  

 

En este momento:

  Hay un problema oculto: el  proyecto maven se empaquetará cuando se ejecute, y los recursos xml en el directorio java se ignorarán cuando se empaquete.

La solución:

  La configuración en pom.xml es la siguiente:

1  < compilación > 
2      < recursos > 
3          < recurso > 
4              < directorio > src / main / java </ directorio > 
5              < incluye > 
6                  < incluye > ** / *. Xml </ incluye > 
7              </ incluye > 
8          < / resource > 
9          < recurso > 
10              < directorio > src / main / resources </ directorio> 
11          </ resource > 
12      </ resources > 
13  </ build >            

  2. Si no está en el mismo directorio, pero el archivo xml está en el directorio de recursos, ¿desea verificar si la interfaz del asignador corresponde al archivo xml?

  

  La imagen de arriba es la correspondiente, que se puede escanear en este momento

Si no corresponde, también puede personalizar la ruta de escaneo:

  En application.properties, la configuración es la siguiente:

mybatis.mapper-locations = classpath: la ruta que desea escanear, como com / xxx / mybatis / *. xml

Hasta ahora: el problema debería resolverse

 

 

Es posible que algunos socios pequeños hayan sido transferidos de ssm. Tengo curiosidad de que SqlSessionFactor y MapperScan previamente configurados hayan desaparecido, ¿es innecesario?

Conozca los principios de ensamblaje automático de SpringBoot, y no entraré en detalles aquí.

mybatis-spring-boot-starter también proporciona la clase de ensamblaje automático correspondiente

 

Supongo que te gusta

Origin www.cnblogs.com/nysd/p/12745110.html
Recomendado
Clasificación