← 返回首页
MybatisPlus基础教程(十五)
发表时间:2021-05-06 10:22:27
IService CRUD实现

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,"");

    }