1、网上找到的方案
1、namespace不正确;
2、id不对应;
3、mapper-locations不正确;
4、文件夹\和.的问题;
5、xml没有编译或不在resource;
都尝试了一遍,还是没有解决;为啥呢?想不通!!!
2、最终解决方案
既然以上方案都没用,那是不是mapper-locations没生效啊?版本不对吗?手动设置一下看看!重写一下SqlSessionFactory。
package com.jeecg.p3.system.config;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
@Configuration
class DBDataSourceConfig {
@Value("${mybatis.mapper-locations}")
private String mapperLocation;
@Bean(name = "dbNormalSqlSessionFactory")
@Primary
public SqlSessionFactory sqlSessionFactory(DataSource dynamicDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dynamicDataSource);
String[] resources = mapperLocation.split(",");
Resource[] resources1 = new PathMatchingResourcePatternResolver().getResources(resources[0]);
List<Resource> resourceList = new ArrayList<>();
resourceList.addAll(Arrays.asList(resources1));
Resource[] resourcesAll = new Resource[resourceList.size()];
resourcesAll = resourceList.toArray(resourcesAll);
sessionFactory.setMapperLocations(resourcesAll);
return sessionFactory.getObject();
}
}
好了,再运行一下,可以连库查询了!?!