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);

    }
}

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