mybatis动态sql中where、set、if 、for循环使用

where-if


test里面是条件 多个条件用and连接,if外加where标签后如果第一个if不符合条件,第二个if会自动去掉开头的 AND (不会去掉结尾的AND)SQL:

SELECT id FROM hospital  WHERE city='xxx'

set-if


 
        UPDATE user
		 
		      
		        name = #{name},
		      
		      
		        sex = #{sex},
		      
		
        WHERE type = #{type}
    

test里面是条件 多个条件用and连接,if外加set标签后编译出来的sql会去掉sex = #{sex},中的,,如果条件都满足则SQL为:

UPDATE user SET name='xxx' ,sex='xxx' WHERE type='xxx'

for


collection:要循环的集合
item:当前迭代对象
index:当前迭代次数
open:以什么字符开始
separator:分割符
close:以什么结束

如果list 的size为4,id分别为 1,2,3,4则SQL为:

SELECT * FROM hospital WHERE id IN(1,2,3,4)

你可能感兴趣的:(mybatis,java,sql)