作业三

本文深入探讨了MyBatis框架中如何高效处理参数集合,特别是在进行复杂查询时的providerId参数传递。通过示例展示了如何使用foreach标签实现in条件语句的构建,以及如何利用if标签动态拼接SQL条件,确保查询的灵活性与准确性。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在这里插入图片描述

ProviderMapper.xml

`<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.oupeng.mapper.ProviderMapper">	
<!--    当传的是一个参数(数组类型),collection="Array",这样写是没问题的,
    当传多个参数时,mybatis不知道参数的对应位置,因此collection对应的值应该是参数名称,-->
<select id="getProviderBill" resultType="Bill">
    select * from smbms_bill where providerId in
    <foreach collection="providerId" item="item" open="(" separator="," close=")">
        #{item}
    </foreach>
</select>

`在这里插入图片描述

ProviderMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.oupeng.mapper.ProviderMapper">
<!--    -->
    <select id="getProviderInfo" resultType="Provider">
        select id,proCode,proName,proContact,creationDate from smbms_provider
        <where>
            <if test="proCode!=null">and proCode like concat('%',#{proCode},'%') </if>
            <if test="proName!=null">and proName like concat('%',#{proName},'%')</if>
            <if test="proContact!=null">and proContact like concat('%',#{proContact},'%')</if>
            'endTime'>=creationDate and creationDate>='startTime'
        </where>

    </select>

</mapper>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值