- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章mybatis-plus 使用Condition拼接Sql语句各方法的用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1.setSqlSelect—用于添加查询的列信息 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public
Wrapper<T> setSqlSelect(String... columns) {
StringBuilder builder = new StringBuilder();
String[] arr = columns;
int
len = columns.length;
for
(
int
i = 0; i$ < len; ++i$) {
String
column
= arr$[i$];
if (StringUtils.isNotEmpty(
column
)) {
if (builder.length() > 0) {
builder.append(
","
);
}
builder.append(
column
);
}
}
this.sqlSelect = builder.toString();
return
this;
}
|
2.eq—拼接等于的where语句 column=params 。
1
2
3
4
5
6
|
public
Wrapper<T> eq(boolean condition, String
column
, Object params) {
if (condition) {
this.sql.
WHERE
(this.formatSql(String.format(
"%s = {0}"
,
column
), params));
}
return
this;
}
|
3.ne—拼接不等于的where语句 column<>params 。
1
2
3
4
5
6
|
public
Wrapper<T> ne(boolean condition, String
column
, Object params) {
if (condition) {
this.sql.
WHERE
(this.formatSql(String.format(
"%s <> {0}"
,
column
), params));
}
return
this;
}
|
4.allEq–拼接数据以map封装的等于的where语句 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public
Wrapper<T> allEq(boolean condition, Map<String, Object> params) {
if (condition && MapUtils.isNotEmpty(params)) {
Iterator iterator = params.entrySet().iterator();
while(iterator.hasNext()) {
Entry<String, Object> entry = (Entry)iterator.
next
();
Object value = entry.getValue();
if (StringUtils.checkValNotNull(value)) {
this.sql.
WHERE
(this.formatSql(String.format(
"%s = {0}"
, entry.getKey()), entry.getValue()));
}
}
}
return
this;
}
|
5.gt—-拼接大于号的where语句 。
1
2
3
4
5
6
|
public
Wrapper<T> gt(boolean condition, String
column
, Object params) {
if (condition) {
this.sql.
WHERE
(this.formatSql(String.format(
"%s > {0}"
,
column
), params));
}
return
this;
}
|
6.ge–拼接大于等于号的where语句 (代码类似5) 。
7.lt—拼接小于号的where语句 。
8.le—小于等于 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
/**
*
AND
(user_name=#{ew.paramNameValuePairs.MPGENVAL1}
AND
id=1)
OR
(user_status=#{ew.paramNameValuePairs.MPGENVAL2}
OR
status=1
AND
user_nickname
NOT
LIKE
#{ew.paramNameValuePairs.MPGENVAL3})
AND
(new=xx
AND
hhh
LIKE
#{ew.paramNameValuePairs.MPGENVAL4})
AND
(pwd=11
AND
n1
IS
NOT
NULL
AND
n2
IS
NOT
NULL
AND
n3
IS
NULL
)
GROUP
BY
x1, x2,x3
HAVING
(x1=11
AND
x3=433)
ORDER
BY
dd, d1,d2
*/
ew.
where
(
"user_name={0}"
,
"'zhangsan'"
).
and
(
"id=1"
)
.orNew(
"user_status={0}"
,
"0"
).
or
(
"status=1"
)
.notLike(
"user_nickname"
,
"notvalue"
)
.andNew(
"new=xx"
).
like
(
"hhh"
,
"ddd"
)
.andNew(
"pwd=11"
).isNotNull(
"n1,n2"
).
isNull
(
"n3"
)
.groupBy(
"x1"
).groupBy(
"x2,x3"
)
.
having
(
"x1=11"
).
having
(
"x3=433"
)
.orderBy(
"dd"
).orderBy(
"d1,d2"
);
|
9.and — 在没有出现下一个andNew或者orNew之前的所有where条件在一个括号里 。
10.andNew –新建一组and语句 。
11.or,orNew–同上 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
@Override
public
Map<String, Object> kccxhj(Term term) throws Exception{
QueryWrapper<EZShangPin> wrapper=new QueryWrapper<>();
if(MyStrUtils.isNotEmpty(term.getQ())){
CWMSTmdrdmx tmdrdmx=new CWMSTmdrdmx();
tmdrdmx.setTm(term.getQ());
tmdrdmx.setSl(1);
tmService.recongnizeSptm(tmdrdmx);
//log(
"tmdrdmx"
,tmdrdmx);
if(tmdrdmx.getResult()==0){
wrapper.eq(
"spdm"
,tmdrdmx.getSpdm());
}
else
{
wrapper.
like
(
"spdm+'_'+spmc+'_'+isnull(zjf,'')"
, term.getQ());
}
}
wrapper.eq(MyStrUtils.isNotEmpty(term.getPpdm()),
"fjsx1"
,term.getPpdm());
wrapper.eq(MyStrUtils.isNotEmpty(term.getDldm()),
"fjsx2"
,term.getDldm());
wrapper.eq(MyStrUtils.isNotEmpty(term.getJjdm()),
"fjsx3"
,term.getJjdm());
wrapper.eq(MyStrUtils.isNotEmpty(term.getNddm()),
"fjsx4"
,term.getNddm());
wrapper.eq(
"isnull(tzsy,0)"
, 0);
wrapper.eq(
"ckdm"
, term.getCurrentsddm());
return
repMapper.kccxhj(wrapper);
}
|
1
2
3
4
5
|
@Mapper
@Repository
public
interface RepMapper extends BaseMapper {
Map<String, Object> kccxhj(@Param(Constants.WRAPPER) QueryWrapper wrapper);
}
|
1
2
3
4
5
6
7
8
9
|
<
select
id=
"kccxhj"
resultType=
"java.util.Map"
>
SELECT
SUM
(SL)
AS
zsl,
sum
(sl*bzsj)
as
zje
from
(
select
ckdm,ShangPin.spdm,ShangPin.spmc,ShangPin.zjf,shanpin.bzsj,ShangPin.FJSX1,ShangPin.FJSX2,ShangPin.FJSX3,ShangPin.FJSX4,SPKCB.SL
from
shangpin,SPKCB
where
shangpin.spdm=spkcb.SPDM
) a
${ew.customSqlSegment}
</
select
>
|
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/qq_36752632/article/details/79035980 。
最后此篇关于mybatis-plus 使用Condition拼接Sql语句各方法的用法的文章就讲到这里了,如果你想了解更多关于mybatis-plus 使用Condition拼接Sql语句各方法的用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
创建一个“海盗对话”,可以选择左手或右手。我希望它对“左”和“右”的不同拼写做出积极的回答(正如您将在代码中看到的那样),但是,当我为所有非“右”或“左”的输入添加最终的“else”代码时,它给了我一
With 语句 对一个对象执行一系列的语句。 With object statements End With 参数 object 必需的部分
While...Wend 语句 当指定的条件为 True 时,执行一系列的语句。 While condition  ; Version [stat
所以我正在处理的代码有一个小问题。 while True: r = input("Line: ") n = r.split() if r == " ":
我有一个对象数组: var contacts = [ { "firstName": "Akira", "lastName": "Laine", "number"
int main() { int f=fun(); ... } int fun() { return 1; return 2; } 在上面的程序中,当从main函数中调用一个
我的项目中有很多 if 语句、嵌套 if 语句和 if-else 语句,我正在考虑将它们更改为 switch 语句。其中一些将具有嵌套的 switch 语句。我知道就编译而言,switch 语句通常更
Rem 语句 包含程序中的解释性注释。 Rem comment 或 ' comment comment 参数是需要包含的注释文本。在 Rem 关键字和 comment 之间应有一个空格。
ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间。 ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
Randomize 语句 初始化随机数生成器。 Randomize [number] number 参数可以是任何有效的数值表达式。 说明 Randomize 使用 number 参数初始
Public 语句 定义公有变量并分配存储空间。在 Class 块中定义私有变量。 Public varname[([subscripts])][, varname[([subscripts])
Sub 语句 声明 Sub 过程的名称、参数以及构成其主体的代码。 [Public [Default]| Private] Sub name [( arglist )]
Set 语句 将对象引用赋给一个variable或property,或者将对象引用与事件关联。 Set objectvar = {objectexpression | New classname
我有这个代码块,有时第一个 if 语句先运行,有时第二个 if 语句先运行。我不确定为什么会这样,因为我认为 javascript 是同步的。 for (let i = 0; i < dataObje
这是一个 javascript 代码,我想把它写成这样:如果此人回答是,则回复“那很酷”,如果此人回答否,则回复“我会让你开心”,如果此人回答的问题包含"is"或“否”,请说“仅键入”是或否,没有任何
这是我的任务,我尝试仅使用简短的 if 语句来完成此任务,我得到的唯一错误是使用“(0.5<=ratio<2 )”,除此之外,构造正确吗? Scanner scn = new Scanner(
有没有办法在 select 语句中使用 if 语句? 我不能在这个中使用 Case 语句。实际上我正在使用 iReport 并且我有一个参数。我想要做的是,如果用户没有输入某个参数,它将选择所有实例。
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: If vs. Switch Speed 我将以 C++ 为例,但我要问的问题不是针对特定语言的。我的意思是一
Property Set 语句 在 Class 块中,声明名称、参数和代码,这些构成了将引用设置到对象的 Property 过程的主体。 [Public | Private] Pro
Property Let 语句 在 Class 块中,声明名称、参数和代码等,它们构成了赋值(设置)的 Property 过程的主体。 [Public | Private] Prop
我是一名优秀的程序员,十分优秀!