MyBatis-Plus Common Usage
Contents
Query
QueryWrapper
QueryWrapper
1 | // usage 1 |
LambdaQueryWrapper
1 | // usage 1 |
Convert QueryWrapper
to LambdaQueryWrapper
1 | LambdaQueryWrapper<SysUser> lambdaQueryWrapper = new QueryWrapper<SysUser>() |
Basic Query
An example
1 | List<SysUser> sysUserList = userService.list( |
from
1 | new QueryWrapper<Entity>() |
select
1 | wrapper.select("column 1", "column 2") |
where
1 | wrapper.eq("type", 1) |
and…or
1 | // where type = 1 or type = 2 |
1 | // where status = 0 and (type = 1 or (type > 10 and type < 20)) |
order by
1 | wrapper.orderByDesc("id") |
limit
1 | wrapper.last("limit 10") |
Page Query
- Request URL
http://xxx.xxx/?current=1&size=10&orders[0].column=pubtime&orders[0].asc=true
- Page Query API
1 | IPage<T> selectPage(IPage<T> page, Wrapper<T> queryWrapper) |
- The Page Class
com.baomidou.mybatisplus.extension.plugins.pagination.Page
- Fields for Request parameters
- long size
- long current
- List
orders - String column
- boolean asc
- Fields for response
- List
records - long total
- List
One Column Query
1 | List<Object> names = baseMapper.selectObjs( |
Aggregation Query
Aggregation Query methods
- selectMaps()
1 | List<Map<String, Object>> mapList = userMapper.selectMaps( |
- selectObjs()
1 | List<Object> mapList = userMapper.selectObjs( |
- selectCount()
1 | userMapper.selectCount(queryWrapper); |
select
1 | queryWrapper.select("count(*) as typeCount"); |
group by
1 | queryWrapper.groupBy("type")); |
having
1 | queryWrapper.having("COUNT(*) > 10")) |
Others
Non-query fields
Use @TableField(exist = false)
1 |
|
Use @TableName(excludeProperty={})
1 |
|
Using MySQL keyword as a column name
1 |
|
DML
update it to null when it value is null
1 |
|
logical delete
1 |
|
Update
1 | userService.update(new UpdateWrapper<User>() |