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正常加载运行,需要注意的是在线上环境的时候尽量将*去掉,提高检索效率

相关文章
|
5月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
37 5
|
3月前
|
SQL Java 数据库连接
mybatis使用四:dao接口参数与mapper 接口中SQL的对应和对应方式的总结,MyBatis的parameterType传入参数类型
这篇文章是关于MyBatis中DAO接口参数与Mapper接口中SQL的对应关系,以及如何使用parameterType传入参数类型的详细总结。
61 10
|
4月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
83 6
|
5月前
|
SQL Java 数据库连接
Mybatis系列之 Error parsing SQL Mapper Configuration. Could not find resource com/zyz/mybatis/mapper/
文章讲述了在使用Mybatis时遇到的资源文件找不到的问题,并提供了通过修改Maven配置来解决资源文件编译到target目录下的方法。
Mybatis系列之 Error parsing SQL Mapper Configuration. Could not find resource com/zyz/mybatis/mapper/
|
4月前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
4月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
75 1
|
5月前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
65 2
|
5月前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
286 1
|
5月前
|
测试技术
如何使用 JUnit 测试方法是否存在异常
【8月更文挑战第22天】
102 0