一、问题描述
1、所报错误
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.machine.learn.mapper.ModelTrainMapper.getInfo
at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227)
at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:49)
at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:65)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:58)
at com.sun.proxy.$Proxy76.getInfo(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:197)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
2、分析原因
是因为mapper.xml没有被编译到classes里面。
二、解决办法
在pom.xml以及application.properties加入下面的对应的配置即可:
1、pom.xml
<build>
<!--将mapper文件打包进去-->
<resources>
<resource>
<!--指定根目录 到源文件夹 一般如下-->
<directory>src/main/java</directory>
<includes>
<include>**/mapping/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
2、application.properties
mybatis.mapper-locations=classpath:com/machine/learn/mapping/*.xml