当前位置:网站首页>MP query criteria
MP query criteria
2022-07-22 16:18:00 【Under the night light】
Wrapper Introduce
- Wrapper: Conditionally construct abstract classes
- AbstractWrapper: Used to encapsulate query conditions , Generate sql Of the statement where Conditions
- QueryWrapper:Entity Object encapsulates the operation class , Not with lambda grammar
- UpdateWrapper:Update Conditional encapsulation , be used for Entity Object update operation
- AbstractLambdaWrapper: Use Wrapper Unified processing and parsing lambda obtain column
- LambdaQueryWrapper : use Lambda Query used by syntax Wrapper
- LambdaUpdateWrapper : Lambda Update package Wrapper
Common methods
ge、gt、le、lt、isNull、isNotNull
gt(R column, Object val)
gt(boolean condition, R column, Object val)
ge(R column, Object val)
ge(boolean condition, R column, Object val)
lt(R column, Object val)
lt(boolean condition, R column, Object val)
le(R column, Object val)
le(boolean condition, R column, Object val)
isNull(R column)
isNull(boolean condition, R column)
isNotNull(R column)
isNotNull(boolean condition, R column)
//ge( Greater than or equal to ) gt( Greater than ) le( Less than or equal to ) lt( Less than )
//isNull( It's empty ) isNotNull( Non empty )
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("order_code")
.isNotNull("status")
.gt("seq_num", 10);
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (order_code IS NULL AND status IS NOT NULL AND seq_num > ?)
eq、ne
eq(R column, Object val)
eq(boolean condition, R column, Object val)
ne(R column, Object val)
ne(boolean condition, R column, Object val)
// eq( be equal to ) ne( It's not equal to )
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_code", "NMGDR")
.ne("status", "A");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (order_code = ? AND status <> ?)
between、notBetween
Include size boundaries
between(R column, Object val1, Object val2)
between(boolean condition, R column, Object val1, Object val2)
notBetween(R column, Object val1, Object val2)
notBetween(boolean condition, R column, Object val1, Object val2)
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.between("id", 2, 10)
.notBetween("contract_id", 51, 100);
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (id BETWEEN ? AND ? AND contract_id NOT BETWEEN ? AND ?)
allEq
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
HashMap<String, Object> map = new HashMap<>();
map.put("order_code", "001");
map.put("fid", 100);
map.put("status", "A");
queryWrapper.allEq(map);
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (order_code = ? AND fid = ? AND status = ?)
like、notLike、likeLeft、likeRight
like(R column, Object val)
like(boolean condition, R column, Object val)
likeLeft(R column, Object val)
likeLeft(boolean condition, R column, Object val)
likeRight(R column, Object val)
likeRight(boolean condition, R column, Object val)
notLike(R column, Object val)
notLike(boolean condition, R column, Object val)
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.likeLeft("order_code", "001")
.likeRight("contract_code", "HSC")
.like("product_type_code", "001")
.notLike("material_name", " mechanical ");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (order_code LIKE ? AND contract_code LIKE ? AND product_type_code LIKE ? AND material_name NOT LIKE ?)
Parameters: %001(String), HSC%(String), %001%(String), % mechanical %(String)
in、notIn、inSql、notinSql
in(R column, Collection value)
in(boolean condition, R column, Collection value)
in(R column, Object… values)
in(boolean condition, R column, Object… values)
notIn(R column, Collection value)
notIn(boolean condition, R column, Collection value)
notIn(R column, Object… values)
notIn(boolean condition, R column, Object… values)
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.in("contract_code", Arrays.stream(new String[]{"a", "b", "c", "d"}).toArray())
.notIn("order_code", "1", "2", "3", "4")
.inSql("product_type_code", "1,2,3,4,5")
.notInSql("material_name", "select material_name from t_purchase_order where fid = 100");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (
contract_code IN (?,?,?,?)
AND order_code NOT IN (?,?,?,?)
AND product_type_code IN (1,2,3,4,5)
AND material_name NOT IN (select material_name from t_purchase_order where fid = 100)
)
Parameters: a(String), b(String), c(String), d(String), 1(String), 2(String), 3(String), 4(String)
or、and
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("contract_code", "HMC")
.and(i -> i.eq("order_code", "11")
.eq("product_type_code", "22"))
.or(i -> i.eq("material_name", " mechanical ")
.eq("specification", "A"));
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (
contract_code = ?
AND (order_code = ? AND product_type_code = ?)
OR (material_name = ? AND specification = ?)
)
last
Splice directly to sql Last
Be careful : It can only be called once , Multiple calls are subject to the last one Yes sql The risk of Injection , Please use with caution
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.last("limit 1");
queryWrapper.last("limit 2");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
limit 2
apply
apply(String applySql, Object... params)
apply(boolean condition, String applySql, Object... params)
Parameter description :
- applySql: To be spliced SQL sentence , The SQL There may be {0}、{1}、...、{n} Etc , Used to replace parameters .
- params: parameter list , Used for replacement applySql SQL Statement {0}、{1}、...、{n} etc.
- condition: Used to specify whether the current condition is valid ; If true, Then apply the current condition ; If false, Then ignore the current condition .
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("contract_code", "HMC")
.apply("date_format(update_time,'%Y-%m-%d') = {0}", "2020-10-08")
.apply("status != {0}", "A");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT *
FROM t_purchase_order
WHERE (contract_code = ? AND date_format(update_time,'%Y-%m-%d') = ? AND status != ?)
select
QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.select("contract_code", "status");
List<PurchaseOrder> orders = this.baseMapper.selectList(queryWrapper);
SELECT contract_code,status
FROM t_purchase_order
nested
nested(Consumer<Param> consumer)
nested(boolean condition, Consumer<Param> consumer)
Parameter description :
- consumer: Construct infill SQL Conditions
- condition: Used to specify whether the current condition is valid ; If true, Then apply the current condition ; If false, Then ignore the current condition .
example : Query all surnames Huang , Gender is male , Older than 30, Salary greater than 9000 User information for , as follows :
QueryWrapper<UserBean> wrapper = new QueryWrapper<>();
wrapper.likeRight("name", " yellow ");
wrapper.nested(new Consumer<QueryWrapper<UserBean>>() {
@Override
public void accept(QueryWrapper<UserBean> userBeanQueryWrapper) {
userBeanQueryWrapper.eq("sex", " male ")
.gt("age", 30)
.gt("salary", 9000);
}
});
SELECT user_id,name,sex,age,face,salary,borthday
FROM user
WHERE (
name LIKE ?
AND (
sex = ?
AND age > ?
AND salary > ?
)
)
边栏推荐
- 计算机网络之应用层面试题
- 记一个composer依赖问题requires composer-runtime-api ^2.0.0 -> no matching package found
- Do you know lumen and Nanite? How to use it in ue5 scene production?
- Segment tree learning record
- Vulkan-官方示例解读-子通道
- 12 nodes of DOM
- Discrete problem sorting
- 线段树学习笔记
- "Demand optimization" uses PostMessage to solve the cross domain problem of localstorage
- Learning notes of line segment tree
猜你喜欢
How far can TTL, RS232 and 485 transmit?
Word: insert vector diagram with specified color
DC-4-靶场实践
傍晚的天空
The principle of distributed transaction is simple, and it is full of holes
Cross domain request of SAP e-commerce cloud Spartacus UI customer system
QT notes - customized qlistwidget
【leetcode】
JVM classic interview 20 questions
Docker数据管理案例——MySQL数据持久保存
随机推荐
Automated Test Engineer Interview resume reference
Classic books of Orthodontics
分布式事务,原理简单,写起来全是坑
JVM:类加载的双亲委派机制
操作教程:大华摄像头通过GB28181协议注册EasyCVR平台的详细配置
Scala variables and data types (2)
Jd-h5 development
SAP 电商云 Spartacus UI 客户系统的跨域请求
【Unity项目实践】游戏架构
NB-IOT的基础知识
【leetcode】
JVM内存模型:虚拟机栈
美化多位数字
[solution] NPM err! code E401
Mock模拟数据,并发起get,post请求(保姆级教程,一定能成功)
【js】作用域和作用域链
mysql中not like的简化写法
Elephant Swap的LaaS方案迅速崛起,构建全新DeFi2.0协议
SoC之Hello World
Dominoes staged: the beginning and end of the three arrow capital crash