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