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>