原有項目用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