mysqlxmlif标签_MyBatis中的xml⽂件部分标签使⽤
1:parameterType、resultType
⽆⾮就是对象,map,其他类型
select id, supplier_id, member_id, province_code, province, city_code, city, district_code
from member_address
where id = #{id,jdbcType=INTEGER}
2:#{}和${}区别
将传⼊的数据都当成⼀个字符串,会对⾃动传⼊的数据加⼀个双引号。如:order by #user_id#,如果传⼊的值是111,那么解析成sql时的值为order by "111", 如果传⼊的值是id,则解析成的sql为order by "id".
$将传⼊的数据直接显⽰⽣成在sql中。如:order by $user_id$,如果传⼊的值是111,那么解析成sql时的值为order by user_id, 如果传⼊的值是id,则解析成的sql为order by id.
⽅式能够很⼤程度防⽌sql注⼊。
$⽅式⽆法防⽌Sql注⼊。
$⽅式⼀般⽤于传⼊数据库对象,例如传⼊表名.
⼀般能⽤#的就别⽤$.
MyBatis排序时使⽤order by 动态参数时需要注意,⽤$⽽不是#
and is_default = #{is_default}
and namelike '${name}%'
3:转义字符
在xml的sql语句中,不能直接⽤⼤于号、⼩于号要⽤转义字符
转义字符
符号
解释
<;
<
⼩于号
>;
>
⼤于号
&;
&
&apos;
'
单引号
" ;
"
双引号
例如:
and created_at >= #{created_at}
4:choose 元素
MyBatis 提供了 choose 元素。if标签是与(and)的关系,⽽ choose 是或(or)的关系,choose (when,otherwize) ,相当于java 语⾔中的switch ,与 jstl 中 的 choose 很类似。
SELECT
product_outer_id
product_id
FROM
core_coupon
AND supplier_id = #{supplier_id}
AND activitie_id = #{activity_id}
5:trim 标签
prefix:在trim标签内sql语句加上前缀。
suffix:在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
prefixOverrides:指定去除多余的前缀内容
update core_member_group
operator_id = #{operator_id} ,
user_num = #{user_num} ,
group_name = #{group_name} ,
query = #{query} ,
where group_id = #{group_id} and supplier_id = #{supplier_id}
and operator_id = #{operator_id}
and is_delete = 0
6:foreach 标签
例如where id in (1,2,3,4)必须放到数组⾥⾯,顺便提⼀下如果id的数组特别⼤的话,尽量不要⽤where in,in的返回是有上线的
select id, supplier_id, member_id, province_code, province, city_code, city
xml标签大全from core_member_address
and id = #{id}
and member_id in #{item}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。