您的位置:

Mybatisplusor全方位解析

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

一、mybatisplusor条件拼接

1、Mybatisplusor的实现方式:

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


/**
 * 条件构造器拓展
 */
public class OrWrapper
    extends AbstractWrapper
    > 
    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的拓展,为我们进行复杂的查询操作提供了更加方便快捷的方式,希望能对大家有所帮助。