?大家好我是IT修真院一枚純潔的程序員丽柿,今天給大家分享一下動態(tài)SQL
1.背景介紹
? ?
2.知識剖析
? ?
3.常見問題
? ?
4.解決方案
? ?
5.編碼實(shí)戰(zhàn)
? ?
6.擴(kuò)展思考
? ?
7.參考文獻(xiàn)
? ?
8.更多討論
? ?
1.背景介紹
? ?
先介紹下背景
? ?
MyBatis是一款優(yōu)秀的持久層框架之景,它支持定制化 SQL脯倒、存儲過程以及高級映射植榕。與實(shí)體類對應(yīng)的XML配置文件是mybatis的核心库正,其中包含了很多常用的標(biāo)簽
? ?
2.知識剖析
? ?
動態(tài)SQL:按照不同的條件對SQL語句進(jìn)行拼接雳灵,從而實(shí)現(xiàn)SQL語句的變化哗脖。與靜態(tài)SQL相比祈餐,動態(tài)SQL的優(yōu)勢是可以根據(jù)實(shí)際輸入的參數(shù)自動調(diào)整SQL語句擂啥,從而減少程序猿的工作量。舉個例子:學(xué)生信息有【學(xué)號】帆阳,【姓名】哺壶,【性別】屋吨,【班級】等信息,當(dāng)我們需要更新一個學(xué)生的班級信息時(shí)山宾,如果使用靜態(tài)SQL語句至扰,我們需要提供這個學(xué)生的所有信息,才能夠修改他的【班級】信息资锰,如果使用動態(tài)SQL語句敢课,我們只需要提供他的主鍵【學(xué)號】和新的【班級】信息,就可以了绷杜。
? ?
2.知識剖析
? ?
常用標(biāo)簽:if直秆、where、set鞭盟;foreach圾结;bind
? ?
當(dāng)有很多條if語句時(shí),如果只有幾條成立齿诉,那么拼裝而成的sql語句將會出現(xiàn)語法問題筝野,比如“,”逗號會多出來粤剧,sql中的where會出現(xiàn)在sql語句的末尾歇竟。where標(biāo)簽會自動添加一個WHERE,如果if語句中有AND俊扳,還會將AND刪掉途蒋。
? ?
3.常見問題
? ?
1.字符串的拼接
? ?
2.構(gòu)造查詢條件QueryVo
? ?
4.解決方案
? ?
5.編碼實(shí)戰(zhàn)
? ?
6.擴(kuò)展
? ?
7.參考文獻(xiàn)
? ? ? ? http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html? https://www.cnblogs.com/dongying/p/4092662.html官方文檔
等
? ?