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 封裝的函數列表:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM