好程序員 Java 分享 Mybatis 必會的動態(tài) SQL , 前言 :
成都創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為固鎮(zhèn)企業(yè)提供專業(yè)的成都網(wǎng)站設計、做網(wǎng)站,固鎮(zhèn)網(wǎng)站改版等技術服務。擁有10余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
Mybatis 可謂是 java 開發(fā)者必須會的一項技能。 MyBatis 的強大特性之一便是它的動態(tài) SQL 。如果你有使用 JDBC 或其它類似框架的經(jīng)驗,你就能體會到根據(jù)不同條件拼接 SQL 語句的痛苦。例如拼接時要確保不能忘記添加必要的空格,還要注意去掉列表最后一個列名的逗號。利用動態(tài) SQL 這一特性可以徹底擺脫這種痛苦。
mybatis 動態(tài)SQL,通過 if, choose, when, otherwise, trim, where, set, foreach等標簽,可組合成非常靈活的SQL語句,從而在提高 SQL 語句的準確性的同時,也大大提高了開發(fā)人員的效率。本文主要介紹這幾個動態(tài)SQL .
if標簽 if就是用來對輸入映射的字段進行判斷 一般是非空判斷 null 和""。
1.
2.
3. select * from users where 1 =1
4.
5.
6.
動態(tài)
SQL
1.
2.
3. select * from users
4.
5.
6.
7.
choose — when--when--otherwise when 可以多個 otherwise 只能有一個 類似于 switch case 。
需求:輸入用戶 id 按照用戶 id 進行精確查找 其他條件不看 沒有輸入 id 用戶名模糊查找 都沒有的話 查詢 id=1 的用戶
1.
2.
3.
4. select * from users
5.
6.
7.
8.
9.
10.
11.
12.
13.
動態(tài) sql 之 set 代替 set 關鍵字 set 標簽可以幫助我們?nèi)サ糇詈笠粋€逗號
1.
2.
3. update users
4.
5.
6.
7.
8.
9.
10.
11. where uid =#{uid}
12.
Trim , trim 代替 where
1.
2.
3. select * from users
4.
2.
3.
4. update users
5.
6.
7.
8.
9.
10.
11.
12.
F oreach 來遍歷集合
1.
2.
3. select * from users where uid in
4.