做 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") ListselectAll();
更新学生信息,使用 script 标签
@Update({ "" }) void updateStu(@Param("age") Integer age,@Param("name")String name ,@Param("clsId") Long clsId,@Param("id")Long id);
bind 元素允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文。
需求:通过用户name 进行模糊查询