#####<if>标签会根据test的值决定是否把标签中的sql语句拼接进去
<if test="#{t_id!=null}">
and t_name=#{tname}
</if>
#####<where>标签作用是用来动态生成Sql中的where关键字的,可以把<if>标签嵌套到<where>标签中如果<where>标签的值全部不满足则不生成where,能够自动删除<if>里面and和or来满足语法规则成立,
注意事项:
内容后的and和or不能去掉
<where>
<if test="xx">
xx =xx
</if>
<if test="xx">
AND xx=xxx
</if>
</where>
<trim prefix="前缀" suffix="后缀" prefixOverrides="前缀重写" suffixOverrides="后缀重写">
<if test="xxx"></if>
</trim>
<choose>
<when test="布尔表达式"></when>
<when test=""></when>
<otherwise>不满足执行</otherwise>
</choose>
注意事项:在映射接口中的方法参数为数组或者集合的话,mybatis会默认把里面的元素放入map集合中
用arg0,arg1或者param1param2来获取所以要使用@Param注解来指定访问方式
collections ------ 要遍历的集合或者数组
item ---------------保存每一个值得临时变量
spearator---------------每循环一次得分隔符
open--------------“” 循环开始添加的东西
close-----------""循环结束添加的东西
<foreach collection="students" item="student" separator="," open="" close="">
(#{student.sid},#{student.sname},#{student.sage},#{student.sphone},null)
</foreach>
#####<sql>和<include>
可以把公共的Sql语句声明到<sql>标签中然后使用<include>引入
声明
<sql id="addstu">
INSERT INTO student VALUE
</sql>
引入
<include refid="addstu"></include>