- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章mybatis中xml之trim属性说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1.prefix 前缀增加的内容 。
2.suffix 后缀增加的内容 。
3.prefixOverrides 前缀需要覆盖的内容,一般是第一个判断条件前面的多余的结构,如:第一个判断条件前面多了 ‘and' 。
4.suffixOverrides 后缀需要覆盖的内容,一般是最后一个数据的后面符号,如:set值的时候,最后一个值的后面多一个逗号‘,' 。
1.根据用户姓名和年龄查询用户,有什么值就根据什么条件(目的是说明几个属性用法,可能例子不适用于实际场景中) 。
1
2
3
4
5
6
7
8
9
10
11
12
|
select
*
from
User
where
name
=
'zhangsan'
and
age=
'20'
;
<
select
id=
'queryUser'
>
select
*
from
User
<trim prefix=
'where'
prefixOverrides=
'and'
>
<if test=
"name != null and name != ''"
>
name
= #{
name
}
</if>
<if test=
"age !=null and age !=''"
>
and
age = #{age}
</if>
</trim>
<
select
>
|
上面例子是很常规的一个写法,第一个条件前面没有任何符号,第二个条件要加上and,否则sql语句会报错。很理想的状态是第一个和第二个都有值,但是既然判断,说明也可能会没有值,当第一个name没有值的时候,这个时候sql语句就会是 。
select * from User where and age='',很明显这个sql语句语法存在问题。在这里标签属性prefixOverrides就起作用了,它会让前缀where覆盖掉第一个and。覆盖之后的是:select * from User where age='',
前缀加上where就不说,因为属性 prefix='where',这个where 也可以写在<trim>标签的外面,这样此处就无需用到属性prefix了.
现在有更方便的标签了,就是<where>,用这个标签效果一样的,会忽略掉第一个符合条件前面的符号.
1
2
3
4
5
6
7
8
9
|
select
*
from
User
<
where
>
<if test=
"name != null and name != ''"
>
name
= #{
name
}
</if>
<if test=
"age !=null and age !=''"
>
and
age = #{age}
</if>
</
where
>
|
如果第一个name值是null,则age前面的and会被忽略掉.
再说说另两个属性,suffix和suffixOverrides.
如:更新用户的信息,哪些字段有值就更新哪些字段,sql语句如下:
1
2
3
4
5
6
7
8
9
10
11
|
<
update
id=
"updateUser"
>
update
User
<trim prefix=
"set"
suffixOverrides=
","
suffix=
"where id='1'"
>
<if test=
"name != null and name != ''"
>
name
=#{
name
},
</if>
<if test=
"age != null and age !=''"
>
age=#{age},
</if>
</trim>
</
update
>
|
本例中最后一个条件中的逗号“,”会被后缀覆盖掉,本例中的后缀是where id =‘1'; 。
OK,纯属为了说明四个属性怎么使用的,具体里面的值会根据具体需求而定。希望举一反三~ 。
使用trim标签去除多余的逗号 。
如果红框里面的条件没有匹配上,sql语句会变成如下:
1
|
INSERT
INTO
role(role_name,)
VALUES
(roleName,)
|
插入将会失败.
做如下修改:
其中最重要的属性是 。
1
|
suffixOverrides=
","
|
表示去除sql语句结尾多余的逗号. 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我.
原文链接:https://blog.csdn.net/chenpuzhen/article/details/89643861 。
最后此篇关于mybatis中xml之trim属性说明的文章就讲到这里了,如果你想了解更多关于mybatis中xml之trim属性说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我认为 trim() 不存储 trim 后的值。 我在用户提交他们的字符串之前对结果应用了 trim 并且它起作用了,它通过删除额外的空间来正确显示。但是如果我取回 trim 后的值,它会给我用户输入
我遇到了一些困惑。 我知道 String 对象是不可变的。这意味着如果我从 String 类调用方法,例如 replace(),则 String 的原始内容不会改变。相反,一个新的 String 被返
下面是一个使用 trim 的简单示例。根据问题的标题,它们之间有什么区别吗?正如您在下面看到的,它们具有相同的输出。如果答案是“否”,使用哪个更好? 目前我使用 .trim() 因为这是我第一次看到
我从工作表中的网站复制了一些数据,注意到一些单元格除了预期值外,还包含尾随空格。 由于给我的代码带来麻烦,我想删除这些空格。我发现了一个有这个空间的特定单元格并尝试了: Worksheets(2).R
vba 中的 trim 和 trim$ 有什么区别?今天无意中在vba中使用left和trim函数时,编译器说找不到项目或库 当我用谷歌搜索它时,在一个论坛上我发现用户使用这样的方式 vba.tri
这个问题已经有答案了: Why does Date.parse give incorrect results? (11 个回答) 已关闭 4 年前。 我知道从字符串创建日期通常是一个坏主意,但这仍然引
jQuery trim 和原生 JavaScript trim 之间有什么区别吗? 是否有其他行为、安全、性能? 最佳答案 JavaScript .trim() 是在 ES 5.1 中定义的,不适用于
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
PowerShell 有一个非常好的内置帮助系统,我经常使用它,我可以通过 Get-Help * 查看所有帮助选项。并查询 Cmdlet 或可以使用 Get-Help about_* 查找主题然后说G
查看 jQuery 的源代码: // Use native String.trim function wherever possible trim: trim && !trim.call("\uFEF
如何 trim javascript 日期对象。我有一个日期,格式为(yyyy-d-m)。日期值为 2015-03-03,我想 trim 天数中的前 0,而不是月数。 示例:当我输入:2015-03-
喜欢听听您的意见和理由吗? 我听说深层目录不好,但它与下划线字符相比如何? 最佳答案 使用破折号 - Google 将破折号视为分隔词,但将下划线视为词的一部分。参见 http://www.codin
根据随附的示例工作表,TRIM 似乎无法正常工作,还是我误解了它? 无论哪种方式,目前对我来说非常令人沮丧,因为我有一个电子表格,我必须计算单元格中的单词数,并且由于这个问题,我无法建立一个完全有效/
在这个 jQuery 中,我可以绑定(bind)粘贴事件来验证表单字段,但是我在函数中的方法显然是错误的。我根本没有收到警报。 我只想修剪输入的文本并将其作为表单输入文本字段 #adsense_cli
我有: onclick="document.getElementById('field1').value = Math.round((parseFloat(document.getElementByI
我在页面上有一些小数点后 4 位的价格。有些产品的价格精确到小数点后 4 位,有些则只有 2 位。 目前,我们的网站设置为每种产品显示 4 位小数,我必须使用 JavaScript 来降低那些非 2
我有这棵“树”。 它是一个多维对象。每个“节点”最多有两个属性,分别是 data 和 children。 这是一个例子: {Account: { data: ['stuff'], children:
好吧,伙计们,要么是有一些小问题我没有发现,要么是该 sleep 了。不管是什么,我都非常感谢您的建议。 我正在用 PHP 生成一个 XML 文件。一切都很顺利,直到我输入这一行: $out .= "
我有一个从 AJAX 返回的变量 row['case'] ,它等于“Hello World!”。问题是,当我尝试将其分配给另一个变量时,只有“Hello”被分配,row['case'] =“Hello
我想知道是否可以将整数转换为字符串并在一步内对其进行 trim 。 我有以下对象: 当前表单 { id:1, name:"Abusicus", value:12203, period:"Morning
我是一名优秀的程序员,十分优秀!