MyBatis排序时使用order by 动态参数时需要注意,用$而不是# 用$传参时,直接将参数的值放在sql语句中,如:

<select id="getOpenSourceApkList" resultType="OpenSourceApkInfo" parameterType="Map" >

                 <![CDATA[

                 SELECT * FROM

                      (SELECT A.*, ROWNUM RN FROM

                            (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY ${orderKey} desc,ID)

                       A WHERE ROWNUM <= #{endNo})

                 WHERE RN >= #{beginNo}

           ]]>

 </select>

Sql语句打印:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY averagegrade desc) A WHERE ROWNUM <= ?) WHERE RN >= ?

参数:24(Integer), 1(Integer)

 

用#传参时,不会将参数直接放在sql中,如:

<select id="getOpenSourceApkList" resultType="OpenSourceApkInfo" parameterType="Map" >

                 <![CDATA[

                 SELECT * FROM

                      (SELECT A.*, ROWNUM RN FROM

                            (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY #{orderKey} desc,ID)

                       A WHERE ROWNUM <= #{endNo})

                 WHERE RN >= #{beginNo}

           ]]>

      </select>

Sql语句打印:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM t_OPENSOURCEAPKINFO where RECOMMEND =1 and VISIBILITY=2 ORDER BY ? desc) A WHERE ROWNUM <= ?) WHERE RN >= ?

参数:averagegrade(String), 24(Integer), 1(Integer)

最后执行的是order by  'averagegrade'

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值