溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis中的動態sql怎么利用OGNL表達式進行處理

發布時間:2020-11-24 15:03:39 來源:億速云 閱讀:249 作者:Leah 欄目:編程語言

Mybatis中的動態sql怎么利用OGNL表達式進行處理?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

常用的Mybatis動態sql標簽有6種:

      1. if 語句 (簡單的條件判斷)

      2. choose (when,otherwize) ,相當于Java 語言中的 switch ,與 jstl 中的choose 很類似.

      3. trim (對包含的內容加上 prefix,或者 suffix 等,前綴,后綴)

      4. where (主要是用來簡化sql語句中where條件判斷的,能智能的處理 and or ,不必擔心多余導致語法錯誤)

      5. set (主要用于更新時)

      6. foreach (在實現 mybatis in 語句查詢時特別有用)

(1) if

模糊查詢

<select id="select1" resultType="BaseresultMap"> 
 SELECT * FROM User WHERE Age = ‘18' 
 <if test="name != null"> 
 AND name like #{name} 
 </if> 
</select> 

年齡18且可以模糊搜索姓名

(2)choose,when,otherwize

當Job參數有傳入時,就找出對應工作的人,否則就找出Job為none的人,而不是所有人

<select id="select2" resultType="BaseresultMap"> 
 SELECT * FROM User WHERE Age = ‘18' 
 
 <choose> 
 <when test="Job != null"> 
 AND Job =#{Job} 
 </when> 
 <otherwise> 
 AND Job="none" 
 
 </otherwise> 
 </choose> 
</select> 

(3)foreach

 <select id="select5" resultType="BaseresultBase"> 
 select * from User where id in 
 <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> 
  #{item} 
 </foreach> 
 </select> 
 
public List<User> select5(List<Integer> ids); 

(4) where set trim

where,set

為什么要用where,因為單純的寫where可能會導致 where And ... 和 where .....情況的發生,Set也是一樣的

當然 trim 標簽是萬能的

<select id="select3" resultType="BaseresultMap"> 
 SELECT * FROM User 
<where> 
 
 <if test="Age != null"> 
 Age = #{Age} 
 </if> 
 <if test="Job != null"> 
 AND Job like #{Job} 
 </if> 
 
<where> 
</select> 
 
<update id="update1"> 
 update User 
 <set> 
 <if test="username != null">username=#{username},</if> 
 <if test="password != null">password=#{password},</if> 
 <if test="Age != null">Age =#{Age}</if> 
 </set> 
 where id=#{id} 
</update> 
<pre code_snippet_id="2048504" snippet_file_name="blog_20161214_2_7439616" class="prettyprint lang-xml" name="code"><pre code_snippet_id="2048504" snippet_file_name="blog_20161214_2_7439616" name="code" class="html"><pre code_snippet_id="2048504" snippet_file_name="blog_20161214_2_7439616"></pre> 
<pre></pre> 
<pre></pre> 
<p></p> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre code_snippet_id="2048504" snippet_file_name="blog_20161214_3_3393435" name="code" class="html"></pre><pre code_snippet_id="2048504" snippet_file_name="blog_20161214_3_3393435"></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
<pre></pre> 
 
</pre><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" rel="external nofollow" ><img src="https://cache.yisu.com/upload/information/20200623/121/113452.png"></a></div></pre> 

看完上述內容,你們掌握Mybatis中的動態sql怎么利用OGNL表達式進行處理的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女