mybatisPlus 条件构造器QueryWapper 实操

package com.wego.clouddisk.gallery.mapper;

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.wego.clouddisk.gallery.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * mybatisPlus 类似jpa功能实操测试
 * 包括 简单查询 和 使用条件构造器QueryWapper复杂查询
 *
 * @author caoyn
 * @date 2020/4/13
 */
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class UserMapperTest {

    @Resource
    private UserMapper dao;

    /**
     * 新增
     */
    @Test
    public void testInsert(){
        User user = new User();
        user.setName("李晓明");
        user.setPassword("1234134");
        user.setPhone("13770845467");
        user.setSex(1);
        user.setCreateTime(LocalDateTime.now());
        user.setUpdateTime(LocalDateTime.now());
        dao.insert(user);
    }

    /**
     * 查询
     */
    @Test
    public void testSelect(){
        // 单记录查询
        User user = dao.selectById(1);
        log.info(user.toString());

        // 单记录条件 条件构造器 查询
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("name", "张三丰");

        User user01 = dao.selectOne(queryWrapper);
        log.info(user01.toString());


        // 多记录查询
        // 查询所有
        List<User> list01 = dao.selectList(null);
        // id查询
        List<String> ids = new ArrayList<String>();
        ids.add("1");
        ids.add("2");
        List<User> list02 = dao.selectBatchIds(ids);

        // 多记录map
        HashMap<String, Object> map = new HashMap<>(16);
        map.put("email", "[email protected]");
        map.put("sex", "1");
        List<User> list = dao.selectByMap(map);
        log.info("return selectByMap value = " + list);


        // 多记录复杂条件查询
        QueryWrapper<User> queryWrapper01 = new QueryWrapper<>();
        queryWrapper01.eq("name","张三丰");
        queryWrapper01.like("introduction","%故事%");
        queryWrapper01.orderByAsc("create_time");

        // 记录总数查询
        int count = dao.selectCount(queryWrapper01);
        log.info("result count = " + count);

        queryWrapper01.select("id","name","phone","sex","create_time");
        List<User> users = dao.selectList(queryWrapper01);

        for (User u : users) {
            log.info(u.toString());
        }

        // 分页查询
        Page<User> page = new Page<>(1, 5);
        QueryWrapper<User> queryWrapper02 = new QueryWrapper<>();

        IPage<User> userIPage = dao.selectPage(page, queryWrapper02);

        log.info(userIPage.toString());



    }

    /**
     * 修改
     */
    @Test
    public void testUpdate(){
        User user = dao.selectById(1);
        user.setUpdateTime(LocalDateTime.now());
        dao.updateById(user);

        // 多条件修改

        // 修改值
        User user01 = new User();
        user01.setStatus("1");
        user01.setName("李维斯");

        // 修改条件
        UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
        updateWrapper.eq("name", "王菲菲");

        int update = dao.update(user01, updateWrapper);

    }

    /**
     * 删除
     */
    @Test
    public void testDelete(){
        // 简单删除
        int result = dao.deleteById(4);

        // 多条件删除
        List<String> ids = new ArrayList<String>();
        ids.add("1");
        ids.add("2");

        QueryWrapper<User> userQueryWrapper = new QueryWrapper<>();
        userQueryWrapper
                .isNull("name")
                .ge("status","1")
                .in("id",ids)
                .isNotNull("email");
        int delete = dao.delete(userQueryWrapper);
        log.info("delete return count = " + delete);

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章