学习记录使用~
MyBatisPlus简介
MyBatisPlus(MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率。
MyBatis-plus官网: https://baomidou.com/
分页查询
@Test
void testGetByPage(){
IPage page=new Page(1,2);//一页多少条
userDao.selectPage(page,null);
System.out.println("当前页码值:"+page.getCurrent());
System.out.println("每页显示数:"+page.getSize());
System.out.println("一共多少页:"+page.getPages());
System.out.println("一共多少条数据:"+page.getTotal());
System.out.println("数据:"+page.getRecords());
}
在用分页查询之前先把拦截器打开
public class MpConfig {
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//1.定义MP拦截器
MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
//2.添加具体的拦截器
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
#开启mp的日志(输出到控制台)
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
DQL的三种写法
// //都查
List<User> userList=userDao.selectList(null);
System.out.println(userList);
//方式一:按条件查询
QueryWrapper wrapper=new QueryWrapper();
wrapper.lt("age",18);
List<User> userList=userDao.selectList(wrapper);
System.out.println(userList);
// 方式二:lambda格式按条件查询
QueryWrapper<User> wrapper=new QueryWrapper<User>();
wrapper.lambda().lt(User::getAge,18);
List<User> userList=userDao.selectList(wrapper);
System.out.println(userList);
//方式三:
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
//10到30岁之间----and lt--<;gt-->
lqw.ge(User::getAge,10).lt(User::getAge,30);
//小于10岁或大于30岁----or
lqw.ge(User::getAge,30).or().lt(User::getAge,10);
List<User> userList=userDao.selectList(lqw);
System.out.println(userList);
查询条件null值判定
//查询条件null值判定
UserQuery uq=new UserQuery();
uq.setAge(10);
uq.setAge2(20);
//null判定
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
//先判断第一个参数是否为true,如果为true连接当前条件
lqw.lt(null!=uq.getAge2(),User::getAge,uq.getAge2());
lqw.gt(null!=uq.getAge(),User::getAge,uq.getAge());
List<User> userList=userDao.selectList(lqw);
System.out.println(userList);
查询投影
//查询投影
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
lqw.select(User::getId,User::getName,User::getAge);
List<User> userList=userDao.selectList(lqw);
System.out.println(userList);
QueryWrapper<User> qw=new QueryWrapper<User>();
qw.select("id","name","tel");
List<User> userList=userDao.selectList(qw);
System.out.println(userList);
QueryWrapper<User> qw=new QueryWrapper<User>();
qw.select("count(*) as count,tel");
qw.groupBy("tel");
List<User> userList=userDao.selectList(qw);
System.out.println(userList);
条件查询
//条件查询
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
//等同于=
lqw.eq(User::getName,"Jerry").eq(User::getPassword,"Jerry");
User loginUser=userDao.selectOne(lqw);
System.out.println(loginUser);
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
//范围查询 lt le gt ge eq between
lqw.between(User::getAge,18,20);
User loginUser=userDao.selectOne(lqw);
System.out.println(loginUser);
LambdaQueryWrapper<User> lqw=new LambdaQueryWrapper<User>();
//模糊匹配 like
lqw.like(User::getName,"J");//likeLef/LikeRight
User loginUser=userDao.selectOne(lqw);
System.out.println(loginUser);