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 @   浅笑19  阅读(3652)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示