一,基本查詢
//測試查詢By Id
@Test public void testselectById(){ TUser tUser = tUserMapper.selectById(1L); System.out.println(tUser); }
// 測試批量查詢!By ids
@Test public void testselectByBatchid(){ List<TUser> users = tUserMapper.selectBatchIds (Arrays. asList(1, 2, 3)); users. forEach (System.out::println); }
//按條件查詢之一使用map操作
@Test public void testselectByBatchIds() { HashMap<String, Object> map = new HashMap<String, Object>(); //自定義要查詢
map.put("username", "zl222"); List<TUser> tUsers = tUserMapper.selectByMap (map); tUsers.forEach (System.out::println); }
構造器查詢
構造器圖文介紹
- Wrapper : 條件構造抽象類,最頂端父類,抽象類中提供4個方法西面貼源碼展示
- AbstractWrapper : 用於查詢條件封裝,生成 sql 的 where 條件
- AbstractLambdaWrapper : Lambda 語法使用 Wrapper統一處理解析 lambda 獲取 column。
- LambdaQueryWrapper :看名稱也能明白就是用於Lambda語法使用的查詢Wrapper
- LambdaUpdateWrapper : Lambda 更新封裝Wrapper
- QueryWrapper : Entity 對象封裝操作類,不是用lambda語法
- UpdateWrapper : Update 條件封裝,用於Entity對象更新操作
使用方法
小小一例:
QueryWrapper<TmStockroom> wrapper = new QueryWrapper<>(); wrapper.eq("code",req.getCode()) .or() .eq("name",req.getName()); List<TmStockroom> tmStockrooms = stockroomCommandMapper.selectList(wrapper); //tmStockrooms.forEach(System.out::println);
if(tmStockrooms.size()!=0){ throw new BusinessException("倉庫code或者倉庫名稱已存在"); }
控制台sql:
二,分頁查詢
1,引入MyBatisPlus插件
@Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); }
2,分頁查詢
@Test public void testPage(){ //第一個參數:當前頁數 //第二個參數:顯示數據條數
Page<TUser> tUserPage = new Page<>(1,5); IPage<TUser> tUserIPage = tUserMapper.selectPage(tUserPage, null); tUserIPage.getRecords().forEach(System.out::println); }