MyBatis Day3

本文详细介绍了MyBatis中动态SQL的使用,包括if、where、choose、foreach、set和trim标签,以及如何实现分页。动态SQL支持语句拼接、条件判断和复杂参数处理。例如,if标签用于条件判断,where标签简化where子句,choose标签类似Java的switch语句,foreach标签处理数组、List和Map类型参数,set标签用于更新操作,trim标签添加SQL语句前后缀并忽略多余字符。最后,讨论了MySQL的limit关键字实现分页。
摘要由CSDN通过智能技术生成

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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值