package com.jt;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.StringUtils;
import java.util.List;
@SpringBootTest
public class TestMabits {
//本次代码只涉及到持久层
@Autowired
private UserMapper userMapper;
//1.通过id查询数据
@Test
public void test01(){
int id = 1;
User user = userMapper.selectById(id);
System.out.println(user);
}
/**
* 2.查询username="admin" status=1的数据
* 参数: QueryWrapper 条件构造器 拼接where条件
*原则:根据属性不为null的进行操作
*/
@Test
public void test02(){
//1.构建条件构造器 通过对象封装的方法
User user = new User();
user.setUsername("admin").setStatus(true);
//此对象负责把已知条件进行拼接
QueryWrapper queryWrapper = new QueryWrapper(user);
List<User> list = userMapper.selectList(queryWrapper);
System.out.println(list);
//2.手动构建条件构造器
/**
* 默认条件与条件之间的 连接符是 and
* 可以加 .or
* 大于> gt
* 小于< lt
* 等于= eq
* 大于等于 >= ge
* 小于等于<= le
* 不等于 != ne
*/
QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();
queryWrapper1.eq("username", "admin").eq("status", true);
List<User> list1 = userMapper.selectList(queryWrapper1);
System.out.println(list1);
}
//3.查询id大于1的数据
@Test
public void test03(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("id", 1);
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 4.模糊查询 username 中包含admin
* queryWrapper.like("username", "admin"); 代表 username like "%admin%"
* queryWrapper.likeLeft("username", "admin"); 代表 username like "%admin"
* queryWrapper.likeRight("username", "admin"); 代表 username like "adminv"
*/
@Test
public void test04(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.like("username", "admin");
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
/**
* 5.查询id=1,2,3,4的数据,并且按照倒叙排列
* 升序 asc
* 倒序 desc
*/
@Test
public void test05(){
Integer[] ids = {1,2,3,4};
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//以下语句相当于 where id in (1,2,3,4) order by id desc
queryWrapper.in("id", ids).orderByDesc("id");
List<User> userList = userMapper.selectList(queryWrapper);
System.out.println(userList);
}
/**
* 6.根据电话邮箱查询数据、
* 动态查询
* 语法:condition true 成功拼接 false 不成功不拼接
*/
@Test
public void test06(){
String phone = "1813112";
String email = "111@qq.com";
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StringUtils.hasLength(phone), "phone", phone)
.eq(StringUtils.hasLength(email), "email", email);
List<User> users = userMapper.selectList(queryWrapper);
System.out.println(users);
}
/**
* 7.查询主键
* sql: select id from user
* 使用场景:一般用在关联查询时
*/
@Test
public void test07(){
List<Object> list = userMapper.selectObjs(null);
System.out.println(list);
}
}
Mybatis-Plus 测试方法-查询语句
最新推荐文章于 2024-07-27 17:56:15 发布