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);
}
}
mybatisPlus 條件構造器QueryWapper 實操
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.