MyBatis Mapper.xml编写的sql查询,什么时候需要对象.属性?什么时候直接写属性?

本文讨论了在SQL查询中,如何根据参数类型(单值、对象及对象属性)在mapper.xml文件中正确配置查询条件。

我们在开发中经常编写sql语句,最多的就是查询,所以我这里以查询为例。在mapper.xml文件中编写sql语句的时候会有查询条件参数,那我们什么时候直接写参数名字?什么时候需要对象.参数名呢?大致分为以后几种情况:

情况一:我们只有少量查询参数,是单个传值的。比如:

List querList(String param1, String param2);

那在xml文件中直接使用就可以:

<select id="queryList">
        SELECT
        * from table
        <where>
            <if test="param1!=null">
                AND param1 = #{param1}
            </if>
            <if test="param2!=null">
                AND param2 = #{param2}
            </if>
        </where>
    </select>

情况二:传递单个参数对象

List querList(Object param1);

 这时候xml里面,不需要写param1,直接用属性即可

<select id="queryList">
        SELECT
        * from table
        <where>
            <if test="property!=null">
                AND column = #{property
            </if>
        </where>
    </select>

情况三:多参数对象

List querList(Object param2, @Param("obj1") Object param1);

这时候需要指定param

<select id="queryList">
        SELECT
        * from table
        <where>
            <if test="obj1.param1!=null">
                AND param1 = #{obj1.param1}
            </if>
            <if test="obj1.param2!=null">
                AND param2 = #{obj1.param2}
            </if>
        </where>
    </select>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值