MybatisPlus除了通用的Mapper还可以使用通用的Servcie层,来轻松实现CRUD。
我们接上一节案例,使用IService实现单表的CRUD。
项目结构图如下:

实现步骤:
1.设计UsersService接口
public interface UsersService extends IService<Users> {
}
2.设计UsersServiceImpl实现类
@Service
public class UsersServiceImpl extends ServiceImpl<UsersMapper, Users> implements UsersService {
}
在test包下新建service,创建UsersServiceTest测试类如下:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UsersServiceTest {
@Autowired
private UsersService usersService;
@Test
public void testInsert(){
Users u = new Users();
u.setName("张无忌1");
u.setAge(60);
u.setEmail("zhangsanfeng@qq.com");
boolean flag = usersService.save(u);
Assert.isTrue(flag,"");
}
}
1)测试批量添加。
//测试批量添加
@Test
public void testInsertBatch() {
List<Users> users = new ArrayList<Users>();
for (long i = 7; i < 20; i++) {
Users u = new Users();
//u.setId(i);
u.setName("张" + i);
u.setAge(20 + (int) i);
u.setEmail("zhang" + i + "@qq.com");
users.add(u);
}
boolean flag = usersService.saveBatch(users);
Assert.isTrue(flag, "");
}
2)测试查询操作
//测试查询所有用户资料
@Test
public void testSelectList() {
System.out.println(("----- selectAll method test ------"));
//UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper
//所以不填写就是无任何条件
List<Users> users = usersService.list(null);
users.forEach(System.out::println);
}
//根据ID查询单个用户资料
@Test
public void queryById() {
Users u = usersService.getById(1390124001158213638L);
System.out.println(u);
}
//通过多个id批量查询
@Test
public void queryBatchIds() {
List<Users> users = usersService.listByIds(Arrays.asList(new Long[]{1390124001158213638L,1390124399214436357L,1390124399222824967L}));
users.forEach(System.out::println);
}
//查询单个记录
@Test
public void testGetOne(){
QueryWrapper<Users> queryWrapper = new QueryWrapper<Users>();
queryWrapper.eq("name","张无忌");
Users u = usersService.getOne(queryWrapper);
System.out.println(u);
}
3)测试更新操作
//测试更新
@Test
public void testUpdate() {
Users u = usersService.getById (1390116968933584898L);
u.setName("黄药师");
boolean flag = usersService.updateById(u);
Assert.isTrue(flag,"");
}
4)测试删除
//测试根据ID删除
@Test
public void testDeleteById() {
boolean flag = usersService.removeById(1390124399231213569L);
Assert.isTrue(flag,"");
}
//测试批量删除
@Test
public void testDeleteBatchIds() {
boolean flag = usersService.removeByIds(Arrays.asList(1390124399222824967L, 1390124399222824966L, 1390124399222824965L));
Assert.isTrue(flag,"");
}
//测试条件删除
@Test
public void testDeleteByMap() {
HashMap<String, Object> map = new HashMap<>();
map.put("email", "zhang15@qq.com");
map.put("age", 35);
boolean flag = usersService.removeByMap(map);
Assert.isTrue(flag,"");
}