速查mybatisplus的单表写法

91 阅读3分钟
package com.lzh.xd_shop;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lzh.xd_shop.mapper.BannerMapper;
import com.lzh.xd_shop.model.BannerDO;
import com.lzh.xd_shop.service.BannerService;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author:kaiyang.cui
 * @Package:com.lzh.xd_shop
 * @Project:xd_shop
 * @name:MyTest
 * @Date:2023/4/1 下午5:00
 * @Filename:MyTest
 * @Description:banner单元测试类
 * @Version:1.0
 */
@Slf4j
@SpringBootTest(classes = XdShopApplication.class)
public class BannerTests {


    @Autowired
    private BannerService bannerService;


    @Autowired
    private BannerMapper bannerMapper;

    @Test
    @DisplayName("banner-获取所有banner信息的单元测试")
    public void test() throws Exception {
        List<BannerDO> list = bannerService.listAllBanner();
        log.info("轮播图列表:{}" + list);
    }

    @Test
    @DisplayName("banner-根据id查询banner信息")
    public void test2() throws Exception {
        BannerDO banner = bannerMapper.selectById(1);
        log.info("根据id查询banner信息:{}" + banner);
    }


    @Test
    @DisplayName("banner-根据id批量查询banner信息-传入多个id字段")
    public void test3() throws Exception {
        List<BannerDO> banners = bannerMapper.selectBatchIds(Arrays.asList(1, 2));
        log.info("根据id批量查询banner信息-传入多个id字段:{}" + banners);
    }


    @Test
    @DisplayName("banner-查询一条banner信息,使用条件构造器指定表字段")
    public void test4() throws Exception {
        BannerDO bannerWeight = bannerMapper.selectOne(new QueryWrapper<BannerDO>().eq("weight", 1));
        log.info("查询一条banner信息,使用条件构造器指定表字段:{}" + bannerWeight);
    }

    @Test
    @DisplayName("banner-查询一条banner一共有多少条")
    public void test5() throws Exception {
        Integer rows = bannerMapper.selectCount(null);
        log.info("查询一条banner一共有多少条:{}" + rows);
    }


    @Test
    @DisplayName("banner-插入一条记录")
    public void test6() throws Exception {
        BannerDO banner = new BannerDO();
        banner.setUrl("www.cuikaiyang.com");
        banner.setImg("blog.cuikaiyang.com");
        banner.setWeight(1);
        int rows = bannerMapper.insert(banner);
        log.info("影响的行数是:{}" + rows);
    }

    @Test
    @DisplayName("banner-根据id删除一条记录")
    public void test7() throws Exception {
        int rows = bannerMapper.deleteById(5);
        log.info("影响的行数是:{}" + rows);
    }


    @Test
    @DisplayName("banner-根据条件删除数据")
    public void test8() throws Exception {
        int rows = bannerMapper.deleteById(5);
        log.info("影响的行数是:{}" + rows);
    }


    @Test
    @DisplayName("banner-根据条件删除数据  sql  AND ")
    public void test9() throws Exception {
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("img", "img2");
        columnMap.put("url", "url2");
        int rows = bannerMapper.deleteByMap(columnMap);

        log.info("rows:{}" + rows);

    }

    @Test
    @DisplayName("banner- 根据条件更新数据")
    public void test10() throws Exception {
        BannerDO bannerDO = new BannerDO();
        bannerDO.setUrl("www.cuikaiyang.com");
        int rows = bannerMapper.update(bannerDO, new QueryWrapper<BannerDO>().eq("img", "img3"));

        log.info("rows:{}" + rows);

    }


    @Test
    @DisplayName("banner- 根据条件更新数据--【条件构造器】")
    public void test11() throws Exception {
        UpdateWrapper updateWrapper = new UpdateWrapper();
        updateWrapper.set("url", "aaa.com");
        updateWrapper.eq("img", "img1");
        int rows = bannerMapper.update(null, updateWrapper);

        log.info("rows:{}", rows);

    }


//    @Test
//    @DisplayName("banner- 根据id进行更新")
//    public void test12() throws Exception {
//        BannerDO bannerDO = new BannerDO();
//        bannerDO.setUrl("www.cuikaiyang.com");
//        bannerDO.setImg("blog.cuikaiyang.com");
//        int i = bannerMapper.updateById(6);
//        log.info("rows:{}",i);
//
//    }


    @Test
    @DisplayName("banner- = ? AND != ?")
    public void test13() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("img", "img3");
        queryWrapper.ne("url", "aaa.com");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner- = ? OR != ?")
    public void test14() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.eq("img", "img3");
        queryWrapper.or();
        queryWrapper.ne("url", "aaa.com");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner- 模糊查询")
    public void test15() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.like("url", "aaa.com");
        queryWrapper.notLike("img", "img3");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner- 模糊查询")
    public void test16() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.like("url", "aaa.com");
        queryWrapper.or();
        queryWrapper.notLike("img", "img3");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner- 左、右模糊查询")
    public void test17() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.likeLeft("url", "aaa.com");
        queryWrapper.or();
        queryWrapper.likeRight("img", "img3");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner-WHERE (img IS NULL AND url IN (?,?)) ORDER BY id DESC")
    public void test18() throws Exception {
        QueryWrapper queryWrapper = new QueryWrapper();
        queryWrapper.isNull("img");
        queryWrapper.in("url", Arrays.asList("aaa", "bbbb"));
        queryWrapper.orderByDesc("id");
        List<BannerDO> list = bannerMapper.selectList(queryWrapper);
        log.info("rows:{}", list);

    }


    @Test
    @DisplayName("banner-MyBatisPlus分页")
    public void test19() throws Exception {
        QueryWrapper<BannerDO> wrapper = new QueryWrapper();
        wrapper.eq("weight", 4);
        //第1页,每页2条
        Page<BannerDO> page = new Page<>(2, 2);
        IPage<BannerDO> bannerDOIPage = bannerMapper.selectPage(page, wrapper);
        System.out.println("总条数" + bannerDOIPage.getTotal());
        System.out.println("总页数" + bannerDOIPage.getPages());
        //获取当前数据
        System.out.println(bannerDOIPage.getRecords().toString());

    }


    @Test
    @DisplayName("banner-MyBatisPlus分页---指定参数查询")
    public void test20() throws Exception {
        QueryWrapper<BannerDO> wrapper = new QueryWrapper();
        wrapper.eq("weight", 4);
        //第1页,每页2条
        Page<BannerDO> page = new Page<>(2, 2);
        IPage<BannerDO> bannerDOIPage = bannerMapper.selectPage(page, wrapper.select("id","url"));

        log.info("总条数:{}", bannerDOIPage.getTotal());
        log.info("总页数:{}", bannerDOIPage.getPages());
        //获取当前数据
        log.info("" + bannerDOIPage.getRecords());
    }


    @Test
    @DisplayName("banner-MyBatisPlus乐观所的使用")
    public void test21() throws Exception {
        // 一般都是先通过id找到对应的记录,得到id和version,但是mybatisplus帮我们做了

        BannerDO bannerDO = new BannerDO();
        bannerDO.setVersion(2);
        bannerDO.setId(7);
        bannerDO.setUrl("juejin.cn");
        bannerMapper.updateById(bannerDO);
    }


    @Test
    @DisplayName("banner-MyBatisPlus逻辑删除的使用")
    public void test22() throws Exception {
        int rows = bannerMapper.deleteById(14);
        log.info("受影响的行数:{}",rows);
    }


    @Test
    @DisplayName("banner-MyBatisPlus逻辑删除后的验证:根据id查询数据")
    public void test23() throws Exception {
        BannerDO bannerDO = bannerMapper.selectById(14);
        log.info("bannerDO:{}",bannerDO);
    }


}