Mybatis动态sql语句 in语句 where标签 if标签 trim标签 set标签 foreach标签 choose when标签

目录

in语句:使用foreach标签

where标签 if标签 trim标签:

where标签可以使用trim替代,更灵活

choose when标签可以代替if标签

set标签


in语句:使用foreach标签

mapper层

List findNamesByDeptIds(List deptIds);

mapper.xml 

    

属性介绍

collection表示集合

赋值传参名字deptIds,不用加#{}

item表示给内部数据取名

open表示语句开始前的输入

close表示语句结束时的输入

separator表示每个item之间使用某个符号隔开

注意:

parameterType和resultType是集合时,只需要赋值泛型类型即可

where标签 if标签 trim标签:

mapper层

    List findByIdName(Integer id,String name);

mapper.xml

    

where标签

表示where和and连接在一起时自动删除and

if标签

表示test里面的条件满足时,输出标签中间的数据

test中的条件一般限制字符串类型不为null或者' ',其他类型限制不为null(设置包装类的好处)

注意

传多个参数,使用param1和param2来区别

where标签可以使用trim替代,更灵活

    

trim标签属性

prefix表示以xxx开头

prefixOverrides表示若标签中间内容以xxx开头,就删除

suffix表示以xxx结尾

suffixOverrides表示若标签中间内容以xxx结尾,就删除

choose when标签可以代替if标签

    

set标签

    
        update dept
        
            name = #{name},
            address = #{address}
        
        where id = #{id}
    

set标签

若标签中间内容以","结尾,就自动去掉

注意:

写sql语句时表的字段和实体类的属性需要区别!!!

test属性里面一般都是实体类的属性

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