自己编写的测试类使用Mybatisplus 中方法的报错说找不到

1. 报错信息

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.wdc.mapper.UserMapper.selectList

 2. 尝试修改加@RunWith(SpringRunner.class) 注解、

最开始以为是userMapper 没有注入成功,换了@Resource,加了@RunWith(SpringRunner.class)

都没用,还是说找不到

3. 报错前代码

package com.wdc.usercenter;
import org.junit.Assert;
import com.wdc.mapper.UserMapper;
import com.wdc.model.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;

@SpringBootTest
@RunWith(SpringRunner.class)
public class SimpleTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void select() {
        System.out.println(userMapper);
        System.out.println("啦啦啦啦啦");
        List<User> users = userMapper.selectById(1);
        System.out.println(users);
        List<User> list = userMapper.selectList(null);
        Assert.assertEquals(5, list.size());
        list.forEach(System.out::println);
    }
}

4. 尝试修改@Resource 注解

还尝试了加@Mapper注解,,还是不行,

5. Mapper代码

public interface UserMapper  extends BaseMapper<User> {


    @Select("select  * from wdc.user where id = #{id}")
    List<User> selectById(Integer id);
}

用我自己编写的方法调用发现可以测试通过,但用 BaseMapper 中的方法还是不行,debug了一下发现已经注入,然后就思考是不是mybatisplus依赖没用启动起来,就找不到BaseMapper里面的方法

6.解决方法 --- 换依赖

6.1 之前的依赖

<dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>3.5.3.1</version>
        </dependency>

6.2 修改后的依赖

  <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>

7.通过测试!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值