MyBatis动态SQL学习
if标签
如果studentName是null或空字符串,此语句很可能报错或查询结果为空。
此时我们使用if动态sql语句先进行判断,如果值为null或等于空字符串,我们就不进行此条件的判断。
set 和 trim标记的使用
和之前的where一样,set和trim也是智能标记
在之前的user.xml中添加
update User
userName=#{userName},
password=#{password},
where id=#{id}
//trim
trim标识为格式化标识,可以与其他标识完成where和set的功能
prefix 前缀增加 suffix 后缀增加 prefixOverrides 自动判断前置 suffixOverrides 自动判断后置
接着来测试一下,在user.xml中添加
UPDATE User
userName = #{userName},
password=#{password},
INSERT INTO
ga_dm.t_consumable_info
(
consumable_info_no,
machine_sn,
sw_ver,
insert_datetime,
update_datetime,
)
VALUES
(
#{consumableInfoNo},
#{machineSn},
#{swVer},
#{insertDatetime},
#{updateDatetime},
)
;
UPDATE
ga_dm.t_consumable_info
SET
machine_sn = #{update.machineSn},
machine_sn = NULL,
sw_ver = #{update.swVer},
update_datetime = NULL,
WHERE
consumable_info_no = #{search.consumableInfoNo}
;
UPDATE
ga_dm.t_consumable_info
machine_sn = NULL,
machine_sn = #{update.machineSn},
sw_ver = NULL,
sw_ver = #{update.swVer},
consumable_start_datetime = NULL,
update_datetime = NULL,
update_datetime = #{update.updateDatetime},
WHERE
consumable_info_no = #{search.consumableInfoNo}
;
============