MyBatis-Plus 通用IService使用介绍

IService使用

service层需要继承IService,当然实现层也要继承对应的实现类。

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
public interface UserService extends IService<User> {
 
}
/**
 * <p>
 * 用户 服务实现类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
}

这里小编基本的增删改查就不一一演示了,演示几个特殊一点的方法。

getOne(),这个是方法返回结果不止一条则会抛出异常,如果想默认取第一条结果,可以给这方法传第二个参数为false。

  @Test
    public void getOne() {
        User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAge, 31),false);
        System.out.println(one);
    }

saveOrUpdateBatch(),批量新增或者修改方法,判断ID是否存在,如果ID不存在执行新增,如果ID存在先执行查询语句,查询结果为空新增,否则修改。

   @Test
    public void saveOrUpdateBatch() {
        User user1 = new User();
        user1.setName("兔子");
        user1.setAge(18);
 
        User user2 = new User();
        user2.setId(1088250446457389060L);
        user2.setName("乌龟");
        user2.setAge(18);
 
        List<User> users = Arrays.asList(user1, user2);
 
        boolean b = userService.saveOrUpdateBatch(users);
        System.out.println(b);
    }

接下来说一下基于lambda的相关操作

 /**
     * lombda查询
     */
    @Test
    public void lambdaQuery(){
        List<User> list = userService.lambdaQuery().eq(User::getAge, 18).list();
        list.forEach(System.out::println);
    }
 
    /**
     * lombda修改
     */
    @Test
    public void lambdaUpdate(){
        boolean update = userService.lambdaUpdate().eq(User::getAge, 18).set(User::getAge, 31).update();
        System.out.println(update);
    }
 
    /**
     * lombda删除
     */
    @Test
    public void lambdaRemoce(){
        boolean remove = userService.lambdaUpdate().eq(User::getAge, 18).remove();
        System.out.println(remove);
    }

更多操作

更多操作请移至官网查看:https://mp.baomidou.com/guide/crud-interface.html#service-crud-接口

posted @ 2021-06-10 10:19  浅笑19  阅读(3533)  评论(0编辑  收藏  举报