sql|Mybtais动态SQL详解

一、SQL详解 1. where和if标签 where标签和if标签都可以单独使用,我这里为了方便演示,在示例中就放在一起了。

select * from blog title = #{title} and author = #{author}

2. choose,when和otherwise标签 choose,when和otherwise标签类似于java的switch,case和default语句。
select * from blog title = #{title} and author = #{author} and views = #{views}

3. set标签 set标签用于拼接update更新操作的SQL,注意示例中使用的标签是update,不再是select查询标签了。
update blog title = #{title}, author = #{author} where id = #{id}

4. foreach标签 foreach标签用于在参数是集合类型的场景下,我们可以循环遍历集合中的元素并拼接到SQL中。
select * from blog where id in #{id}

5. sql标签 sql标签用于提取公共的SQL配置,在需要使用的地方直接通过include标签进行引用即可。
title = #{title} and author = #{author} select * from blog

二、CRUD使用动态语句 (1)添加
insert into smbms_user userCode, userName, userPassword #{usercode}, #{username}, #{userpassword}

(2)修改
方法1:(注意最后不能有 , 否则会报错)
update userid = #{id}, name = #{name}, password = #{password}, phone = #{phone}, state = #{state} where id = #{id}

方法2: (推荐使用)
updatesmbms_bill billcode=#{billcode}, productname=#{productname}, productdesc=#{productdesc},

(3)删除
delete from smbms_user where id=#{id}

(4)查询
方法1:
select * from smbms_user and usercode=#{code} and userpassword=#{password} and deleteflag=0

方法2:(推荐使用)
${bils}.id,${bils}.billCode,${bils}.productName, ${bils}.productDesc,${bils}.productUnit,${bils}.productCount, ${bils}.totalPrice,${bils}.isPayment,${bils}.createdBy, ${bils}.creationDate,${bils}.modifyBy,${bils}.modifyDate, ${bils}.providerId,${bils}.deleteflagselect from smbms_bill b where deleteflag=0

【sql|Mybtais动态SQL详解】

    推荐阅读