使用门户网站网络推广方法,成都平面设计培训学校有哪些,免费一级域名有哪些,公司网站推广MP 使用小记 所谓 MP 是指#xff1a;Mybatis-Plus 前言
本篇文章是对 MP 一些日常开发学习中不常见但实用的使用小技巧总结#xff0c;内容将持续更新#xff0c;希望能对小伙伴们有所帮助。推荐点赞 收藏哦#xff01;
官方文档#xff1a;Mybatis-Plus
给现有分页指…MP 使用小记 所谓 MP 是指Mybatis-Plus 前言
本篇文章是对 MP 一些日常开发学习中不常见但实用的使用小技巧总结内容将持续更新希望能对小伙伴们有所帮助。推荐点赞 收藏哦
官方文档Mybatis-Plus
给现有分页指定字段排序
第一种方法
其中reqDTO 是方法参数。主要内容是给 page 插入排序属性。 // 1、MPPageTestVO page new Page();page.setCurrent(reqDTO.getCurrent());page.setSize(reqDTO.getSize());ListOrderItem itemList new ArrayList();// 插入排序属性OrderItem orderItem new OrderItem();orderItem.setColumn(create_time); // 按什么字段排序orderItem.setAsc(false); // 是否升序itemList.add(orderItem);page.setOrders(itemList);
第二种方法
利用 MP 中 IServiceT 的 lambdaQuery() 方法。 // select * from learning_lesson where user_id #{userId} order by latest_learn_time desc limit #{offset}, #{size}PageLearningLesson page lambdaQuery().eq(LearningLesson::getUserId, userId) // where user_id #{userId}.page(query.toMpPage(latest_learn_time, false));
条件判断
主要有以下几种
eq 就是 equal 等于ne 就是 not equal 不等于gt 就是 greater than 大于lt 就是 less than 小于ge 就是 greater than or equal 大于等于le 就是 less than or equal 小于等于
lambdaQuery 实现 list // 第一种写法LambdaQueryWrapperEnterpriseEntity wrapper new LambdaQueryWrapper();wrapper.eq(EnterpriseEntity::getEnterpriseId, id);ListEnterpriseEntity list entService.list(wrapper);// 第二种写法ListEnterpriseEntity list entService.lambdaQuery().eq(EnterpriseEntity::getEnterpriseId, id).list();还可以用 select() 指定查询字段
实现 distinct 去重功能 ListEnterpriseEntity list this.query().select(distinct type).eq(enterprise_id, entId).between(upload_time, DateUtil.beginOfDay(today), DateUtil.endOfDay(today)).list();自动填充
使用 TableField 注解的 fill 属性结合自定义的 MetaObjectHandler可以实现字段自动填充。
TableField(fill FieldFill.INSERT)
private LocalDateTime createTime;TableField(fill FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;清空查询条件
MyBatis-Plus 中 QueryWrapper 类提供的方法之一queryWrapper.clear() 。
用于清空当前 QueryWrapper 对象中的查询条件让 QueryWrapper 对象重新变为空白状态。
在实际的开发中我们可能需要根据不同的条件动态构建查询条件而 queryWrapper.clear() 提供了一种方便的方式可以在重新构建查询条件之前清空已有的条件。
public ListUser queryUserList(String name, Integer age) {QueryWrapperUser queryWrapper new QueryWrapper();// 第一次构建查询条件if (StringUtils.isNotBlank(name)) {queryWrapper.like(name, name);}if (age ! null) {queryWrapper.eq(age, age);}ListUser userList userMapper.selectList(queryWrapper);// 清空查询条件queryWrapper.clear();// 第二次构建新的查询条件queryWrapper.eq(status, 1);ListUser userListWithStatus1 userMapper.selectList(queryWrapper);// 返回结果注意此时的 queryWrapper 已经没有之前的条件了return userListWithStatus1;
}