mybatis的xml文件的標(biāo)簽詳解

Mybatis

#{}和${}和區(qū)別

#{}:
  - mybatis在處理的時候會將#{username} 處理成辜梳?,用于參數(shù)傳遞時占位
  - 當(dāng)傳入的參數(shù)是字符串時抓艳,會自動加上''將傳遞的值括起來
  - mapper接口方法中的參數(shù)與xml文件中是按照參數(shù)位置索引對應(yīng)的澎粟,不是根據(jù)參數(shù)的名稱码荔,但是建議最好一致。
  
${}:
  - 字符串拼接
  - mapper接口方法中的參數(shù)與xml文件中是按照參數(shù)位置索引對應(yīng)的,不是根據(jù)參數(shù)的名稱星压,但是建議最好一致。
  - mybatis在處理的時候會直接拼接在傳遞的sql上鬼譬,不會生成占位的?
  - 可以用于創(chuàng)建統(tǒng)一的方法娜膘,比如對所有表按照id查詢。
    - select * from ${tableName} where id = #{id}   -----> mybatis操作后:select * from student where id = '7dsj'

mybatis獲取方法參數(shù)

單值:
  - 可以通過#{}或${}中間可以是任意名稱优质,但是需要注意${}的具體使用場景竣贪。
  
多個單值:
  - mybatis會將所有參數(shù)放在一個map中,以兩種方式存儲
    - 以arg0,arg1...為鍵巩螃,參數(shù)為值演怎。
    - 以param1,param2...為鍵,參數(shù)為值避乏。
    - 兩種方式目前看來只有索引位起始有差異
    - 還是通過#{}或${}以鍵來訪問對應(yīng)的值
    
Map(對象同理爷耀,只不過獲取的是屬性):
  - 通過#{}或${}以map中的鍵的方式來獲取值

@Param注解
  - 命名參數(shù)
  - 實(shí)際上取代了arg0,arg1,...的訪問方式,將其名稱改為了注解里設(shè)置的值,還是可以繼續(xù)用param1,param2,...
  
總結(jié):
  - 其實(shí)一共可以歸結(jié)為2種情況
  - 傳遞的參數(shù)是對象或者M(jìn)ap時拍皮,或者值時就用屬性名
  - 其他情況可以用@Param注解來指定

動態(tài)SQL

if:
<if test = "屬性名 != null and 屬性名 != ''">
    字段名 = #{屬性名}
</if>
注意:and的問題

where:用來解決沒有條件時歹叮,忽略where和解決拼接時產(chǎn)生的多余and或者or等此類的情況(只能去掉前面的and或or)
<wherr>
</where>

trim:
  - prefix | suffix 將trim標(biāo)簽中內(nèi)容前面或后面添加指定內(nèi)容
  - prefixOverrides | suffixOverrides 將trim標(biāo)簽中內(nèi)容前面或者后面的指定內(nèi)容去掉
  - 若標(biāo)簽中沒有內(nèi)容,trim標(biāo)簽也不會起作用铆帽,where也不會生成
<trim prefix = "where" suffixOverrides = "and | or">
</trim>

choose咆耿、when、otherwise:相當(dāng)于if...else if...else
<where>
  <choose>
      <when test = "屬性名 != null and 屬性名 != ''">
         字段名 = #{屬性名}
      </when>
      <when test = "屬性名 != null and 屬性名 != ''">
         字段名 = #{屬性名}
      </when>
      ...
      <otherwise>
         字段名 = xxxx
      </otherwise>
  </choose>
</where>

foreach:
  - collection 集合類型
    - 數(shù)組用array或者arg0爹橱,如果使用@Param指定了名稱萨螺,也可用自定義的名稱
    - list用arg0、collection、list屑迂。如果使用@Param指定了名稱浸策,也可用自定義的名稱
  - item 循環(huán)遍歷時的變量名稱
  - separator 循環(huán)體之間的分隔符
  - open 內(nèi)容的開始符號
  - close 內(nèi)容的結(jié)束符號
<foreach collection = "array" item = "id" separator = "," open = "(" close = ")">
   #{id}
</foreach>
<foreach collection = "list" item = "emp" separator = ",">
   (#{emp.name},#{emp.age},#{emp.sex})
</foreach>

sql:
  - 用來提取公共常用條件,比如經(jīng)常查詢的字段
  - 定義:<sql id = "commonSelect">id,name,sex,address</sql>
  - 使用:<include refid = "commonSelect"></include>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惹盼,一起剝皮案震驚了整個濱河市庸汗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌手报,老刑警劉巖蚯舱,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掩蛤,居然都是意外死亡枉昏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門揍鸟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兄裂,“玉大人,你說我怎么就攤上這事阳藻∥保” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵腥泥,是天一觀的道長匾南。 經(jīng)常有香客問我,道長蛔外,這世上最難降的妖魔是什么蛆楞? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮夹厌,結(jié)果婚禮上豹爹,老公的妹妹穿的比我還像新娘。我一直安慰自己尊流,他們只是感情好帅戒,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布灯帮。 她就那樣靜靜地躺著崖技,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钟哥。 梳的紋絲不亂的頭發(fā)上迎献,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音腻贰,去河邊找鬼吁恍。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冀瓦。 我是一名探鬼主播伴奥,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼翼闽!你這毒婦竟也來了拾徙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤感局,失蹤者是張志新(化名)和其女友劉穎尼啡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體询微,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡崖瞭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了撑毛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片书聚。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖藻雌,靈堂內(nèi)的尸體忽然破棺而出寺惫,到底是詐尸還是另有隱情,我是刑警寧澤蹦疑,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布西雀,位于F島的核電站,受9級特大地震影響歉摧,放射性物質(zhì)發(fā)生泄漏艇肴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一叁温、第九天 我趴在偏房一處隱蔽的房頂上張望再悼。 院中可真熱鬧,春花似錦膝但、人聲如沸冲九。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽莺奸。三九已至,卻和暖如春冀宴,著一層夾襖步出監(jiān)牢的瞬間灭贷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工略贮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甚疟,地道東北人仗岖。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像览妖,于是被迫代替她去往敵國和親轧拄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容