mybatis plus 中增删改查及Wrapper的使用

本文为博主原创,未经允许不得转载:

  mybatis plus 通过封装  baseMapper 以及 ServiceImpl ,实现对数据库的增删改查操作,baseMapper 是我们通常所说的 dao 层或 mapper 层,

ServiceImpl  是我们通常所说的 业务层,其内部标注了事务回滚,以及它内部的实现很多也是通过 baseMapper 进行实现的。

IService 依赖于 Spring 容器,而 BaseMapper 不依赖我们在应用的时候

根据自己的便捷性,选择合适的方法即可。 前面的博客中已经搭建了 spring boot + mybaits plus 的框架,其中定义了 UserMapper 和 UserServiceImpl ,

代码及博客的链接如下:

搭建 spring boot + mybatis plus 项目框架并进行调试

  1. 查询:

    封装查询参数的Wrapper 有两种方式,效果是等同的;

   QueryWrapper<User> wrapper = new QueryWrapper<>();  与  Wrappers.<User>query().lambda() 是相同的

@Slf4j
@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private UserService userService;

     @Test
    void query() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.eq("name", "2");
        // 1.根据QueryWrapper 进行条件查询
        User user = userMapper.selectOne(wrapper);
        // 2.使用 Wrappers 的lamda表达式进行查询
        userService.list(Wrappers.<User>query().lambda().eq(User::getName,"test"));

        Map<String,Object> paramsMap = new HashMap<>();
        paramsMap.put("name","test");
        // 3.使用map封装查询参数,查询列表
        List<User> users= (List<User>) userService.listByMap(paramsMap);

        // 4.查询总数
        int count = userService.count();
        // 5.根据条件查询总数
        int count2 = userService.count(Wrappers.<User>query().lambda().eq(User::getName,"test"));
    }  

}

  2。修改

  @Test
    void update() {
        User user = new User();
        user.setAge(23);
        user.setEmail("344");
        user.setName("test333");
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("id","1");
        // 1.user 中封装修改的属性值, updateWrapper 中封装修改的条件参数值
        userService.update(user,updateWrapper);

        // 2.根据条件修改对应的参数属性值
        userService.update(Wrappers.<User>update().lambda().set(User::getName, "2").eq(User::getAge, 23));
    
     // 3.判断参数是否为空,并进行修改
     String name = "name";
     userService.update(Wrappers.<User>update().lambda().set(StringUtils.isNotBlank(name),User::getName, name).eq(User::getAge, 23));
}

  3.新增

    @Test
    void save() {
        User user = new User();
        user.setAge(23);
        user.setEmail("344");
        user.setName("test");
        // 1.使用service新增
        userService.save(user);
        // 2.使用mapper 新增
        userMapper.insert(user);
    }

  4.删除

 @Test
    void delete() {
        // 根据条件删除
        userService.remove(Wrappers.<User>query().lambda().eq(User::getAge, 3));
    }

  5.mybatis plus 封装的函数列表:

原文地址:https://www.cnblogs.com/zjdxr-up/p/14323081.html