記錄一下mybatis的簡單動態查詢用法

記錄一下mybatis的簡單動態查詢用法

  <select id="findByCondition" resultMap="BaseResultMap" parameterType="hashmap" >
          select *
        from equipmentcheckresult
        <trim  prefix="where" prefixOverrides="and|or">
            <if test="toolId!=null and toolId!='' ">  
                AND tool_id=#{toolId}  
            </if> 
             <if test="beginTime != null and beginTime != ''">AND check_time <![CDATA[>=]]> #{beginTime}</if>
             <if test="endTime != null and endTime != ''">AND check_time <![CDATA[<=]]>#{endTime}</if>
             <if test="elementId != null">
                 AND element_id IN
                <foreach collection="elementId" index="index" item="item"
                    open="(" separator="," close=")">
                    #{item}
                </foreach>
             </if>
             <if test="sort != null and sort != '' ">order by id ${sort}</if> 
        </trim>
  </select>

1.hashmap 爲mybatis內置對象能夠直接使用sql

2.屬性「prefix」表示:加入前綴where數組

3.屬性「prefixOverrides」表示:自動覆蓋第一個「and」或者「or」mybatis

4.<![CDATA[   ]]> 是什麼,這是XML語法。在CDATA內部的全部內容都會被解析器忽略。ide

在使用mybatis 時咱們sql是寫在xml 映射文件中,若是寫的sql中有一些特殊的字符的話,在解析xml文件的時候會被轉義,但咱們不但願他被轉義,因此咱們要使用<![CDATA[ ]]>來解決。ui

若是文本包含了不少的"<"字符 <=和"&"字符——就象程序代碼同樣,那麼最好把他們都放到CDATA部件中。spa

5.elementId爲集合或者數組經過foreach進行遍歷 index爲下表,item爲遍歷元素 (數組用length計算長度,集合類型用size())code

6.order by 的時候 排序參數 不可用#{} 而是要用 ${}xml

相關文章
相關標籤/搜索