1.动态SQL
MyBatis通过标签的配合使用,可以实现一下功能
a. 语句的动态拼接
b. 前后缀格式处理
c. 复杂参数处理
MyBatis常用的动态SQL标签
if标签
a.条件判断,类似于Java中if语句
语法:
在上述语法中,if标签内的test属性意为进入if标签需要满足的条件,当判断为true时,表示条件满足,进入标签。接下来举个例子
List<Storagerecord>getSelectIdPayName(@Param("supplierId") Integer supplierId,@Param("payStatus") Integer payStatus,@Param("goodsName") String goodsName);
<select id="getSelectIdPayName" resultType="pojo.Storagerecord">
select st.id,st.srCode,st.goodsName,st.supplierId,sp.supName,st.totalAmount,st.payStatus,st.createdTime
from t_storagerecord st,t_supplier sp
where st.supplierId=sp.id
<if test="supplierId!=null">
and st.supplierId=#{supplierId}
</if>
<if test="payStatus!=null">
and st.payStatus=#{payStatus}
</if>
<if test="goodsName!=null and goodsName!=''">
and st.goodsName like CONCAT('%',#{goodsName},'%')
</if>
</select>
随后我们编写测试类,就能成功实现根据条件实现模糊查询
where标签
a.简化SQL语句中where子句处理,智能处理and,or等关键字
语法:
在上述语法中,把SQL语句中的where关键字替换为<where></where>标签,并将所有的过滤条件放置于标签内部即可,举个例
List<Supplier&g