原有项目用shiro控制权限,要合并到新项目中,新项目中用到mybatis-plus (官网地址:https://mp.baomidou.com/),合并后项目启动不起来。java
报:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。spring
官网常见问题中有描述问题解决方案:sql
描述的比较抽象,弄了半天才解决,记录下,但愿对朋友有帮助。apache
以下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>
就官网解决方案中的使用: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; } }
软件老王这边,其余的配置自己就是对的,好比:app
(1)启动类上配置MapperScanspring-boot
@MapperScan({"com.laowang.db.mapper"})
(2)配置文件(property)配置及加载mapperspa
mybatis-plus.mapper-locations:classpath*:/mapper/*.xml
更多信息请关注公众号:「软件老王」,关注不迷路,软件老王和他的IT朋友们,分享一些他们的技术看法和生活故事。code