MyBatis 动态SQL与SQL片段

前言:在使用Mybatis中想将生成的sql片段插入到mappper.xml中的sqls

SQL片段引用方法一:将SQL片段当做参数,使用${}带入参数

DaoMapper:

int updateUserInfo(@Param("uuid2") String uuid2, @Param("updateStr") String updateStr);

mapper.xml

<update id="updateUserInfo" >

    update yxs_user_info set ${updateStr},update_date=now()

    where user_uuid = (select uuid from yxs_user_login_info where uuid2=#{uuid2})

</update>

参数uuid2值为ABC, updateStr值为  email = ”lhm1830**@163.com“,,最终MyBatis解析后的SQL为:

update yxs_user_info set  email = ”lhm18***@163.com“ ,update_date=now()   where user_uuid = (select uuid from yxs_user_login_info where uuid2="ABC")

注:

1. #{data}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #{user_id},如果传入的值是ABC,那么解析成SQL时的值为order by "ABC"。

2. ${}将传入的数据直接显示生成在sql中。

3. #方式能够很大程度防止sql注入, $方式无法防止Sql注入。

4. 一般能用#的就别用$。

转载于:https://my.oschina.net/u/2289161/blog/838222

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值