zoukankan      html  css  js  c++  java
  • Mybatis choose元素的用法

    Mybatis choose元素的用法

    项目遇到一个需求,需要实现动态 or 条件查询, 已知动态 and 查询使用 <if>元素,查询了官网,<choose>元素刚好能满足动态 or需求。

    choose 介绍

    有时候,我们不需要使用到所有的条件,只要满足其中的一个条件即可。<choose>元素为此而生,它类似 Java 的 switch 语句,具有高度的相似性。choose元素就好比 switch在最外层,<choose>元素下还有<when><otherwise>两个元素,<when>元素类似于case,而<otherwise>则类似于default

    官网相关介绍:https://mybatis.org/mybatis-3/zh/dynamic-sql.html

    choose 例子

    <select id="selectCount" resultType="java.lang.Integer">
        SELECT COUNT(*)
        FROM
        project_development pd
        LEFT JOIN business_customer bc ON bc.id = pd.customer_id
        LEFT JOIN base_project bp ON bp.id = pd.project_id
        WHERE
        pd.WORK = 1
        <if test="id != null">
            and pd.id = #{id}
        </if>
        <choose>
            <when test="sort != null">
                order by pd.sort desc,pd.name
            </when>
            <otherwise>
                order by pd.start_date desc,pd.status desc,pd.progress desc,pd.id desc
            </otherwise>
        </choose>
    </select>
    

    sort参数不为空时,执行 <when>元素下的排序,<when>元素可以同时存在多个,满足其中一个条件时就执行相应的sql,然后跳出<choose>,当所有<when>都不满足时,则执行<otherwise>下的sql。

    <choose>元素的应用还是比较简单的,这里就不多赘述。

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    常用操作之增、删、改、查
    文本编辑器相关操作
    关于Secondary NameNode
    hive基础概念总结(1)
    Shell 十三问[转]
    《SQL Server 2012 Tutorials Analysis Services Multidimensional Modeling》读后感
    HDFS随笔(1)
    Hue for Apache Hadoop
    大数据面试题总结
    关于数据倾斜
  • 原文地址:https://www.cnblogs.com/CF1314/p/14119255.html
Copyright © 2011-2022 走看看