1. 程式人生 > >關於mybatis根據傳進來的引數執行不同的語句,類似於java中的if~else~語句

關於mybatis根據傳進來的引數執行不同的語句,類似於java中的if~else~語句

1、在一個方法中根據條件執行兩個不同的查詢語句,例如下面的查詢穿進來的引數為admin時執行第一個查詢語句,否則就執行下面查詢語句

dao類中的方法

public List<Caidan> getcaidan(@Param(value="czyid") String czyid);

xml檔案中

    <select id="getcaidan" parameterType="java.lang.String" resultType="com.dyaqjy.bean.Caidan">     
   <choose>
   <when test="czyid=='admin'">
              SELECT * FROM s_caidan where upid='root'
   </when>
   <otherwise>
         SELECT s_caidan.id,s_caidan.title,s_caidan.upid,s_caidan.url,
       s_caidan.icon,s_quanxian.czyid
       FROM s_caidan RIGHT OUTER JOIN s_quanxian ON s_quanxian.caidanid = s_caidan.id
       WHERE s_caidan.upid = 'root' AND s_quanxian.czyid = #{czyid}
       ORDER BY s_caidan.id ASC
   </otherwise>
    </choose>
                     
    </select>