记录一个idea+springboot+mybatis+mysql的报错

背景

最近按照网上教程做了一个idea+springboot+mybatis+mysql的demo,结果发现运行有问题,结果报错。记录一下解决的办法。

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.***.***.mapper.InsertMapper.insertName
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.5.jar:3.5.5]
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) ~[mybatis-3.5.5.jar:3.5.5]
	at org.apache.ibatis.binding.MapperProxy.lambda$cachedInvoker$0(MapperProxy.java:115) ~[mybatis-3.5.5.jar:3.5.5]
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_181]
	at org.apache.ibatis.binding.MapperProxy.cachedInvoker(MapperProxy.java:102) ~[mybatis-3.5.5.jar:3.5.5]
	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:85) ~[mybatis-3.5.5.jar:3.5.5]
	at com.sun.proxy.$Proxy56.insertCluster(Unknown Source) ~[na:na]
	at com.kafka.easykafka.serviceImpl.ClusterServiceImpl.addBroker(ClusterServiceImpl.java:50) ~[classes/:na]
	at com.kafka.easykafka.serviceImpl.ClusterServiceImpl$$FastClassBySpringCGLIB$$f9d67cf3.invoke(<generated>) ~[classes/:na]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.8.RELEASE.jar:5.2.8.RELEASE]

找了无数的办法,比如名字一不一样,之类的。但是都没有办法解决问题。多方求证发现,是idea没有办法把mybatis的mapper配置文件生成到target里面。这点就不如eclipse,eclipse会自动把这些一起编译进去但是,idea如果不是在静态resources目录下就不会自己编译。也就是说,比如我的UserMapper.java和UserMapper.xml在一起,但是idea只识别了java文件,所以没有办法去关联这些类和接口的关系。因此我们必须去自己配置一下,只要让系统找到了xml文件并且编译了,就搞定了。

解决

具体来说就是告诉idea整个目录的xml文件你都要给我扫到并且编译,这个配置应该怎么做呢?首先找到porm.xml文件,然后把下面<resources> ***</resources>这里面的值贴到你的porm文件中的<build> </build>标签对立面,就像我下面做的一样。再运行就完美解决了。

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

猜你喜欢

转载自blog.csdn.net/Smallc0de/article/details/107838638