最近在做公司多源数据库项目的配置,然后一顿测试后发现,在直接调用Mybatis-plus提供的list方法,出现以下错误:
mybatis-plus org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.hikvision.basicframe.mapper.mysql.bsmMapper.selectList
百思不得其解,用了好多种方法,比如修改.yml配置,新增xml映射等等....
后来跟踪代码后发现,是找不到mybatis-plus的mapper层,也就是说
mybatisplus 的 baseMapper 注入失败了!!!导致调用该 (基础Dao层)的实例对象的 insert 方法时,无法找到 bean对象!!!
后来回去看自己的mybatisFactory配置项,发现使用的是SqlSessionFactoryBean(),如下:
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(datasource);
因为Mybatis 在给mybatis-plus升级之后,用这个就会出现无法匹配成功的错误!
只需改成mybatis的专有配置即可!!!
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(datasource);