Mybaits動態Sql解析

Mybaits動態Sql解析

Mybaits


什麼是動態SQL?

MyBatis的強大之處便是它的動態SQL,如果你使用JDBC那麼在根據不同條件查詢時,拼接SQL語句是多麼的痛苦。 比如查詢一個學生信息,可以根據學生的姓名,性別,班級,年齡,學歷等信息來查詢,並且多個條件可以任意組合。 而MyBatis中集成了非常強大的 OGNL表達式,可以幫助我們解決這個問題。

if標籤

if標籤作為mybatis動態sql中的條件判斷,它可以判斷你是否傳入某個字段的值以決定你是否執行這條sql語句。


使用IF標籤可以完成我們的動態sql語句並且,我們很多時候可能判斷這個的時候卻又不判斷那個,我們只好分成幾個方法寫,有了這個if標籤我們就可以很好根據業務需求完成自己的語句拼接合併成一個方法。

where標籤

where標籤可以替代if和choose標籤,不需要添加多餘的where 1=1條件。當where中的條件沒有一個滿足時,不輸出where關鍵字。如果條件滿足,會去掉第一個開頭的and或者or。


choose標籤

有些時候,我們不想用到所有的條件語句,而只想從中擇其一二。 choose標籤為Mybatis中的提供多重條件判斷,使用when和otherwise標籤進行條件判斷,多個條件中只有一個被執行。


set標籤

set標籤主要用於在update更新值時,動態添加更新的列,如果列沒有值則不添加。避免使用多餘的,號。


update tal_employee



last_name=#{lastName},


email=#{email},


gender=#{gender},


where id = #{id}

有了set這個標籤就想指定更新那個字段就是那個字段,高端大氣上檔次。

trim標籤

where默認是將第一個的and或者or去掉,set是將更新中的,去掉,如果用戶想自定義一些規則,則需要使用另外一個自定義標籤

Mybaits動態Sql解析










foreach標籤

foreach標籤這個標籤是用來迭代我們的集合對象,它支持list,array,map。它有屬性:

collection:循環集合或指定類型

item:每次迭代的結果

separator:設置分隔符

open:開始符號(前綴)可選

close:結束符號(後綴)可選

index:list和數據的序號,可選


SQL標籤

用來定義常量,通過include來引用


select * from tal_employee



分享到:


相關文章: