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 实操
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.