spring 继承 mybatis时, 可以正常运行 编写的junit报错,原因是mybatis没有加入到mapperFactory中 求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 继承 mybatis时, 可以正常运行 编写的junit报错,原因是mybatis没有加入到mapperFactory中 求解相关的知识,希望对你有一定的参考价值。

Mapped Statements collection does not contain value for UserMapper.insert

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= "classpath:conf/spring/app-context.xml","classpath:conf/spring/servlet-context.xml")
@ActiveProfiles("test")
public class UserDaoImplTest extends TestCase

@Autowired
protected UserDao userDao;

@Test
public void testInsert() throws Exception
User user = new User();
user.setId("id");
user.setUsername("username");
user.setPassword("password");
user.setRole(RoleEnum.Student.getKey());
System.out.println("test");
boolean result = userDao.insert(user);
assertTrue(result);

参考技术A mybatis的配置文件中缺少对UserMapper.insert的配置。追问

没有mybatis-config.xml
利用spring扫描的
而且开发环境和war包都没问题
只有junit有问题

追答

单独的spring和junit是两个体系结构,你在测试类加@RunWith(SpringJUnit4ClassRunner.class)试试。

追问

你看的贴的代码的第一个标签

参考技术B web启动的时候,spring的配置都已经加载好了。
但是junit启动的话,新起的线程里当然没有数据了,除非你重新加载一遍spring.xml。追问

@ContextConfiguration(locations= "classpath:conf/spring/app-context.xml","classpath:conf/spring/servlet-context.xml")

参考技术C 哥们,我也遇到了这样的问题,你是怎么解决的呢?

以上是关于spring 继承 mybatis时, 可以正常运行 编写的junit报错,原因是mybatis没有加入到mapperFactory中 求解的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot 学习六 spring 继承 mybatis (基于注解)

Spring事务管理只对出现运行期异常进行回滚

一般项目中使用struts,spring mybatis时如何使用Session?

Spring+Mybatis项目中通过继承AbstractRoutingDataSource实现数据库热切换

spring boot + MyBatisPlus 一对多、多对一、多对多的解决方案

Spring学习AOP与整合Mybatis