mybatis小结

最近遇到一个功能,就是需要根据前端传过来的字段进行数据排序,然后返回。

项目:springboot + mybatis

  • 问题: dao 写好之后,在控制台打出的 sql 放在数据库界面工具查询时,完全没问题,程序中查回来的数据是无需状态。
select DATA_DATE,PROVINCE_NAME,CITY_NAME,AREA_NAME,CUR_FUD_AMOUNT_CUST_NUM
        from <表名>
        where
        <choose>
            <when test="levelFlag==0">
                LEVEL_FLAG='1'
            </when>
            <when test="levelFlag==1">
                LEVEL_FLAG='2'
                and PROVINCE_CODE=#{provinceCode,jdbcType=VARCHAR}
            </when>
            <when test="levelFlag==2">
                LEVEL_FLAG='3'
                and CITY_CODE=#{cityCode,jdbcType=VARCHAR}
            </when>
        </choose>
        and BRANCH_CODE = #{branch,jdbcType=VARCHAR}
        order by #{orderField} DESC nulls last
  • 解决:将 #{orderField} 替换成 ${orderField}.
  • 原因:暂不清楚。。。研究中。。。

注意:想要动态的查询不同表,也需要使用 ${table_name} 拼接,,直接使用 #{table_name} 查询不成功。

-- 将传过来的表名也给返回去
select distinct DATA_DATE ,'${tableName}' table_name from ${tableName}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×