上一篇博客中,我们完成了springboot 使用spring data jpa但是在我们实际工作中,可能大部分的同学还是使用mybatis比较多,所以今天我们在这里实现一下springboot使用mybatis实现对user表的增删改查并且进行单元测试
实现1、添加mybaits依赖
org.springframework.boot spring-boot-starter-weborg.mybatis.spring.boot mybatis-spring-boot-starter1.3.2 mysql mysql-connector-javaruntime org.springframework.boot spring-boot-starter-testtest
并且在yml中配置一下数据源跟mybatis的配置。
server:
port: 8989mybatis:
mapper-locations: classpath:/mybaits/mapper
private String username;
private String password;
private Integer age;
private Integer sex; public String getUsername() { return username;
} public void setUsername(String username) { this.username = username;
} public String getPassword() { return password;
} public void setPassword(String password) { this.password = password;
} public Integer getAge() { return age;
} public void setAge(Integer age) { this.age = age;
} public Integer getSex() { return sex;
} public void setSex(Integer sex) { this.sex = sex;
} public Long getId() { return id;
} public void setId(Long id) { this.id = id;
}
}3、编写mapper接口
接下里我们新建repository包 新建UserMapper.java接口 并且定义增删改查的方法声明
public interface UserMapper {
int save (User user);
int update (User user);
int deleteById (int id);
User selectById (int id);
List selectAll ();
} 跟我们之前定义的mapper.xml文件的位置,我们在resource/mybatis/mapper目录下 新建与之对应的UserMapper.xml
delete from user where id=#{id}
这时候mybatis的配置还不算成功,我们需要把mapper的路径暴露给spring 让它来扫描管理,所以我们需要在Chapter4Application.java文件上加上注解@MapperScan("com.yukong.chapter4.repository") 扫描mapper的所在位置
至此。我们mybaits的接口算是编写完毕,接下来我们来测试一下把。
4、测试
这次我们用spring boot的单元测试来测试我们的接口。
在idea中 使用快捷键新建测试类ctrl+shift+t
image.png
勾选需要测试的方法,并且点击ok
这时候会在src/test/java目录下对应的包路径新建对应的测试文件
代码如下
@SpringBootTest@RunWith(SpringJUnit4ClassRunner.class)public class UserMapperTest { @Autowired
private UserMapper userMapper; @Test
public void save() {
User user = new User();
user.setUsername("zzzz");
user.setPassword("bbbb");
user.setSex(1);
user.setAge(18); // 返回插入的记录数 ,期望是1条 如果实际不是一条则抛出异常
Assert.assertEquals(1,userMapper.save(user));
} @Test
public void update() {
User user = new User();
user.setId(1L);
user.setPassword("newpassword"); // 返回更新的记录数 ,期望是1条 如果实际不是一条则抛出异常
Assert.assertEquals(1,userMapper.update(user));
} @Test
public void selectById() {
Assert.assertNotNull(userMapper.selectById(1L));
} @Test
public void deleteById() {
Assert.assertEquals(1,userMapper.deleteById(1L));
}
}使用spring boot测试需要在测试类上解释注解
@SpringBootTest @RunWith(SpringJUnit4ClassRunner.class)
另外我们这里使用Assert断言来判断实际结果跟预期结果是否一致,如果不一致则抛出异常。
image.png
右键类旁边的运行按钮,一次测试所有的方法
结果如下
image.png
所有的方法通过测试,springboot于mybatis整合成功。
作者:余空啊
链接:https://www.jianshu.com/p/c44dc639cb93



