Mybatisplusor全方位解析

Mybatisplusor是Mybatisplus的一个拓展,其核心思想是为了增强Mybatisplus的条件构造器(Criteria),可以更方便快捷的进行多条件的拼接,同时还提供了方便的排序方法,接下来我们从条件拼接、排序方式两个方面来详细了解mybatisplusor。

一、mybatisplusor条件拼接

1、Mybatisplusor的实现方式:

在Mybatisplus的基础上,mybatisplusor增加了一个拓展包,直接继承了Mybatisplus的核心实现,只是增加了一些辅助拼接的方法。


/**
 * 条件构造器拓展
 */
public class OrWrapper extends AbstractWrapper<T, String, OrWrapper> 
    implements Serializable, Cloneable {
    // 省略部分代码
}

2、Mybatisplusor支持的多条件拼接方式:

Mybatisplusor提供了多种多条件的拼接方式,包括普通的and、or关系、以及括号拼接、函数拼接等方式。


@Autowired
private UserMapper userMapper;

public List<User> multiCriteriaQuery() {
    // or关系
    OrWrapper<User> orWrapper = new OrWrapper<>();
    orWrapper.like("name", "张").or().like("name", "三");
    // and关系,包含括号
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.gt("age", 20)
            .and(qw -> qw.lt("age", 30).or().like("name", "李"));

    // 函数拼接
    QueryWrapper<User> queryWrapper2 = new QueryWrapper<>();
    queryWrapper2.apply("date_format(create_time,'%Y-%m-%d')={0}", "2020-04-06")
            .inSql("manager_id", "select id from user where name like '%张%'");

    return userMapper.selectList(orWrapper);
}

3、Mybatisplusor在实际开发中的应用场景:

在复杂的查询场景下,我们需要拼接多个条件进行查询,如果使用Mybatisplus+普通方式拼接可能会显得代码冗长繁琐。这时候可以使用mybatisplusor来更方便地拼接多个条件,使代码更加简洁易读,大大提高开发效率。

二、mybatisplusor排序方式

1、Mybatisplusor支持的排序方式:

除了支持Mybatisplus本身提供的orderBy方法,Mybatisplusor还提供了更加简单方便的orderByAsc和orderByDesc方法,使排序更加高效快速。


@Autowired
private UserMapper userMapper;

public List<User> multiCriteriaQuery() {
    // 普通的orderBy方式,需要写列名
    QueryWrapper<User> queryWrapper1 = new QueryWrapper<>();
    queryWrapper1.orderByAsc("age");

    // mybatisplusor拓展的orderByAsc方法,直接写属性名即可排序
    QueryWrapper<User> queryWrapper2 = new QueryWrapper<>();
    queryWrapper2.orderByAsc("age");

    // mybatisplusor拓展的orderByDesc方法
    QueryWrapper<User> queryWrapper3 = new QueryWrapper<>();
    queryWrapper3.orderByDesc("age");

    return userMapper.selectList(queryWrapper);
}

2、Mybatisplusor在实际开发中的应用场景:

在需要根据多个属性排序的情况下,使用原生的orderBy方法需要写列名较为繁琐,如果使用Mybatisplusor提供的orderByAsc和orderByDesc方法可以直接按属性名排序,使得代码更加简洁易读。

三、Mybatisplusor的使用注意事项

1、Mybatisplusor只是Mybatisplus的一个拓展,并不是必需品,需要根据实际情况进行选择和应用。

2、多条件拼接和排序都是Mybatisplusor在Mybatisplus基础上提供的一些扩展方法,不会影响Mybatisplus原有的功能。

3、Mybatisplusor不仅仅支持上述两种拓展方法,还提供了其它一些方便实用的方法,需要根据实际需求进行选择。

结语

本文对Mybatisplusor进行了全方位的解析,详细介绍了它在条件拼接和排序方式方面的特点和使用方法,并提供了相应的代码示例。

Mybatisplusor作为Mybatisplus的拓展,为我们进行复杂的查询操作提供了更加方便快捷的方式,希望能对大家有所帮助。

原创文章,作者:DTSC,如若转载,请注明出处:https://www.506064.com/n/131205.html

(0)
DTSCDTSC
上一篇 2024-10-03
下一篇 2024-10-03

相关推荐

  • VueAjax的完全指南

    在前端开发中,数据请求和响应是非常常见的事情。VueAjax是一个基于Vue.js库的轻量级的AJAX框架,它能够帮助你轻松的利用Vue.js的组件特性完成异步数据交互的任务。本篇…

    编程 2024-10-04
  • 前端工程师

    一、前端工程师主要做什么工作 前端工程师是指负责网站和 Web 应用程序前端开发和维护的工程师。前端工程师的主要工作是将网站的 UI 设计图转换成实际可用的网页,负责网站的用户交互…

    编程 2024-10-04
  • 魔术师发牌问题的java实现,魔术师发牌问题图解

    本文目录一览: 1、JAVA斗地主如何实现发牌和出牌功能 2、java 52张 扑克牌 问题 3、扑克牌实现洗牌发牌,显示各家手上的牌并统计各家的牌中有几组对子,几组三条(例如三个…

    编程 2024-10-03
  • php中iconv函数(php iconv 转换编码)

    本文目录一览: 1、php 使用iconv函数将字符串从utf8转到gbk,怎么保留特殊字符串! 2、php中iconv函数问题 3、为什么我的php不能用iconv()函数 ph…

    编程 2024-10-03
  • php打开mysql模块(php支持mysql)

    本文目录一览: 1、怎么开启php对mysql的支持? windows下的系统 加我332550517 2、php中mysql启动不起来 3、如何打开php mysql数据库 4、…

  • cjsy是什么(cj是啥?)

    1、什么是布艺设计??? 2、阳春有种鸡叫麻婆鸡?那是什么鸡? 3、酸菜怎么做,需要什么调料 4、长郡双语中学初中新生分连队名单什么时候公布 我们有布艺制作技术视频培训讲座。手把手…

  • Linux TTY:终端命令行界面完全指南

    一、什么是Linux TTY? Linux TTY是指终端设备,在计算机操作系统中,它提供了用户与系统进行交互的界面,是计算机操作的重要界面之一。在Linux系统中,TTY通常用于…

    编程 2024-10-04
  • 关键字:C++数据类型

    C++是一种面向对象的编程语言,它支持多种数据类型。在C++语言中,数据类型决定了变量可以保存什么类型的数据,以及该类型数据的大小和存储方式。本文将详细介绍C++各种数据类型,包括…

    编程 2024-10-04
  • 如何正确卸载Python包

    Python是一门在数据科学领域非常常见的编程语言。在日常的Python编程过程中,我们经常需要安装或卸载各种Python包以便于开发。但是,如果安装不当或者不再使用某个包的时候没…

    编程 2024-10-04
  • python知识点官方文档的简单介绍

    本文目录一览: 1、学习python必备的基础知识 2、学习Python应该掌握哪些知识点 3、python主要学习哪些知识点 4、python语言基础知识有哪些? 5、pytho…

发表回复

登录后才能评论