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/zh-tw/n/131205.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DTSC的頭像DTSC
上一篇 2024-10-03 23:43
下一篇 2024-10-03 23:43

發表回復

登錄後才能評論