SSM项目使用junit单元测试时Mybatis通配符加载Mapper不能正常加载

简介: SSM项目使用junit单元测试时Mybatis通配符加载Mapper不能正常加载

问题描述:项目使用maven build 以及tomcat run能够正常运行,但是使用junit单元测试时却报错误

Caused by: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for CommonTermTeacherMapper.listOwnTerm

猜测是mybaties mapper未能正常加载


 <!-- 本项目数据源代码 -->
<bean id="sqlSessionFactory"
  class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <!-- 显式指定Mapper文件位置 -->
  <property name="configLocation"
      value="classpath:/SqlMapConfig.xml" />
  <!-- 通配符指定Mapper.xml -->
  <property name="mapperLocations">
      <array>
          <value>classpath:/mybatis/**/*Mapper.xml</value>
          <value>classpath:/**/*Mapper.xml</value>
      </array>
  </property>
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
</bean>

解决方案 :可能是junit的运行时的classpath信息与正常运行时不同,于是将classpath修改为classpth*,使其从多个classpath中加载mapper文件


   <!-- 本项目数据源代码 -->
    <bean id="sqlSessionFactory"
        class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- 显式指定Mapper文件位置 -->
    <property name="configLocation"
        value="classpath*:/SqlMapConfig.xml" />
    <!-- 通配符指定Mapper.xml -->
    <property name="mapperLocations">
        <array>
            <value>classpath*:/mybatis/**/*Mapper.xml</value>
            <value>classpath*:/**/*Mapper.xml</value>
        </array>
    </property>
    </bean>



junit正常加载运行,需要注意的是在线上环境的时候尽量将*去掉,提高检索效率

相关文章
|
27天前
|
前端开发 Java 关系型数据库
SpringBoot+MyBatis 天猫商城项目
SpringBoot+MyBatis 天猫商城项目
47 1
|
28天前
|
IDE Java 测试技术
Junit 单元测试
JUnit是Java常用的单元测试框架,简化了测试用例的编写和执行。其特点包括简单注解、自动化测试、可扩展性、灵活性及与IDE的集成。使用方法涉及创建测试类、利用注解如@Test、@BeforeEach等管理测试生命周期,以及使用各种断言方法验证结果。此外,JUnit支持参数化测试以覆盖更多输入组合,并能与Maven、Gradle等构建工具集成,提升测试效率和项目管理。
36 1
|
28天前
|
SQL XML Java
mybatis Mapper的概念与实战
MyBatis 是一个流行的 Java 持久层框架,它提供了对象关系映射(ORM)的功能,使得Java对象和数据库中的表之间的映射变得简单。在MyBatis中,Mapper是一个核心的概念,它定义了映射到数据库操作的接口。简而言之,Mapper 是一个接口,MyBatis 通过这个接口与XML映射文件或者注解绑定,以实现对数据库的操作。
33 1
|
2月前
|
Java 数据库连接 Maven
使用mybatis插件generator生成实体类,dao层和mapper映射
使用mybatis插件generator生成实体类,dao层和mapper映射
47 0
|
7天前
|
Java 测试技术 程序员
junit单元测试
junit单元测试
|
4天前
|
SQL Java 数据库连接
MyBatis精髓揭秘:Mapper代理实现的黑盒探索
MyBatis精髓揭秘:Mapper代理实现的黑盒探索
13 1
|
26天前
|
JavaScript Java 关系型数据库
实例!使用Idea创建SSM框架的Maven项目
实例!使用Idea创建SSM框架的Maven项目
29 0
|
27天前
ssm(Spring+Spring mvc+mybatis)Dao层实现类——DeptDaoImpl
ssm(Spring+Spring mvc+mybatis)Dao层实现类——DeptDaoImpl
12 0
|
27天前
ssm(Spring+Spring mvc+mybatis)Dao接口——IDeptDao
ssm(Spring+Spring mvc+mybatis)Dao接口——IDeptDao
8 0