做 where 语句后面条件查询的,if 语句是可以拼接多条的
需求:根据学生name 做模糊查询
代码
mapper.xml
java 代码
ListselectLikeName(String name); 

概述:不想使用所有条件时候,他们可以从多个条件中选择一个使用,相当于java 的 if … else if … else
需求:按年龄19查找,如果id 不空按id 查找,名字不空按名字查找,否则按班级id 查找
mapper.xml
mapper
ListselectChoose(@Param("id") Long id,@Param("name")String name ,@Param("clsId") Long clsId); 
传入 id 参数

不传 id 参数,传入name = ‘z’

不传入 id 参数和 name 参数

trim : 用于去掉或者添加标签中的内容
prefix:可以在 trim 标签内容前面添加内容

prefixOverrides:可以覆盖前面的某些内容

suffix:在 trim 标签后面添加内容

suffixOverrides:去掉 trim 标签内容最后面的值

where 后面直接跟 if

age null

使用了 where 标签之后,解决了这些问题

set:set 元素可以用于动态包含需要更新的列
mapper.xml
update student name = #{name}, age = #{age}, id = #{id} 
void updateSet(@Param("age") Integer age,@Param("name")String name
            ,@Param("clsId") Long clsId,@Param("id")Long id);
 
foreach :用于对集合遍历。 动态 SQL 的另一个常见使用场景是对集合进行遍历(尤其是在构建 IN 条件语句的时候)
查询 id 在 1,3,4 之间的学生信息
mapper.xml
ListselectForeach(@Param("ids") List ids); 


script:要在带注解的映射器接口类中使用动态 SQL,可以使用 script 元素。
使用注解操作 mybatis
需求:查询所有的学生信息,用注解方式实现
@Select("select * from student")
    List selectAll();
  更新学生信息,使用 script 标签
@Update({
            ""
    })
    void updateStu(@Param("age") Integer age,@Param("name")String name
            ,@Param("clsId") Long clsId,@Param("id")Long id);
 
bind 元素允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文。
需求:通过用户name 进行模糊查询
