mybatis项目采用mybatis-plus开发,报:Invalid bound statement (not found) 异常,详细解决方案

一、问题说明

原有项目用shiro控制权限,要合并到新项目中,新项目中用到mybatis-plus (官网地址:https://mp.baomidou.com/),合并后项目启动不起来。java

报:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。spring

官网常见问题中有描述问题解决方案:sql

描述的比较抽象,弄了半天才解决,记录下,但愿对朋友有帮助。apache

二、解决方案

2.1 包的问题

以下pom文件配置,删除mybatis-spring包和mybatis-plus包,使用:mybatis-plus-boot-starter包。session

<!-- ***************** 手动引入 **************** -->
        <!-- mybatis-spring -->
<!--        <dependency>-->
<!--            <groupId>org.mybatis</groupId>-->
<!--            <artifactId>mybatis-spring</artifactId>-->
<!--            <version>${mybatis-spring.version}</version>-->
<!--        </dependency>-->
        <!-- pagehelper-spring-boot-starter -->
     
<!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus</artifactId>-->
<!--            <version>3.4.2</version>-->
<!--        </dependency>-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

2.2 使用MybatisSqlSessionFactoryBean

就官网解决方案中的使用:MybatisSqlSessionFactoryBeanmybatis

import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.sql.DataSource;

@Configuration
public class MybatisPlusConfig {
    @Autowired
    private DataSource dataSource;

    @Bean
    public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean() {
        MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
        mybatisPlus.setDataSource(dataSource);
        return mybatisPlus;
    }
}

2.3 其余配置问题

软件老王这边,其余的配置自己就是对的,好比:app

(1)启动类上配置MapperScanspring-boot

@MapperScan({"com.laowang.db.mapper"})

(2)配置文件(property)配置及加载mapperspa

mybatis-plus.mapper-locations:classpath*:/mapper/*.xml

更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术看法和生活故事。code