一、什麼是QueryWrapperApply
QueryWrapperApply是MyBatis-Plus Java 持久層框架的一部分,提供了基於Java的統一資料庫操作介面,支持多種資料庫操作,同時它還提供了許多方便的實用工具方法,這些方法都可以在使用MyBatis-Plus時發揮優勢。QueryWrapperApply是其中一個比較常用的操作方法,其主要作用在於生成SQL查詢語句,幫助我們避免手寫SQL語句的煩惱。
二、使用QueryWrapperApply
QueryWrapperApply通過構建Wrapper對象來實現SQL語句的生成。這個QueryBuilder應該是被所有的Wrapper所共享的。QueryBuilder有一個很重要的方法apply,它的作用是將查詢條件應用到SQL語句中。QueryWrapperApply的主要作用是幫助我們生成一個查詢模板,下面我們來看一下具體的使用方法:
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("age", 21); queryWrapper.and(wrapper -> wrapper.eq("name", "Tom").or().eq("name", "Jerry")); queryWrapper.select("id", "name"); List<User> userList = userMapper.selectList(queryWrapper);
以上代碼的作用是查詢年齡為21歲且姓名為「Tom」或者「Jerry」的用戶信息,並只查詢其id和name欄位。在這個示例中,QueryWrapperApply的三個主要方法是eq、and和select。其中eq是用來設置查詢條件的,and是用來對查詢條件進行邏輯運算的,select用來選擇查詢欄位。
三、QueryWrapperApply的一些其他方法
1. orderByAsc和orderByDesc
orderByAsc和orderByDesc方法用來設置排序。它們都接收一個參數,即需要排序的欄位名稱,並且可以連續調用多次,以實現多欄位排序。
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("age", 21); queryWrapper.orderByAsc("name").orderByDesc("id"); List<User> userList = userMapper.selectList(queryWrapper);
2. like和notLike
like和notLike方法用來進行模糊查詢。它們也都接收兩個參數,一個是需要查詢的欄位名稱,另外一個是需要進行模糊查詢的內容。
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.like("name", "Tom"); List<User> userList = userMapper.selectList(queryWrapper);
3. in和notIn
in和notIn方法用來對某些欄位進行IN查詢。這些方法都接受兩個參數,一個是需要查詢的欄位名稱,另外一個是需要查詢的值集合,可以是一個數組,也可以是一個List。
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.in("age", 21, 22, 23); queryWrapper.notIn("name", Arrays.asList("Tom", "Jerry")); List<User> userList = userMapper.selectList(queryWrapper);
4. groupBy
groupBy方法用來進行分組查詢。它接收一個參數,即需要分組的欄位名稱,並且可以連續調用多次,以實現多欄位分組。
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.groupBy("sex").groupBy("age"); List<User> userList = userMapper.selectList(queryWrapper);
五、QueryWrapperApply的總結
QueryWrapperApply是一個極其實用的工具,它能夠幫助我們輕鬆地生成SQL語句,避免手寫SQL語句的煩惱,在實際的開發中也被廣泛地應用。在使用QueryWrapperApply時,需要注意的是,根據實際情況選擇相應的方法,並根據實際需求來組合使用,這樣才能達到最好的效果。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308461.html