?大家好我是IT修真院一枚純潔的程序員,今天給大家分享一下動態(tài)SQL
1.背景介紹
? ?
2.知識剖析
? ?
3.常見問題
? ?
4.解決方案
? ?
5.編碼實戰(zhàn)
? ?
6.擴展思考
? ?
7.參考文獻
? ?
8.更多討論
? ?
1.背景介紹
? ?
先介紹下背景
? ?
MyBatis是一款優(yōu)秀的持久層框架,它支持定制化 SQL、存儲過程以及高級映射。與實體類對應(yīng)的XML配置文件是mybatis的核心,其中包含了很多常用的標(biāo)簽
? ?
2.知識剖析
? ?
動態(tài)SQL:按照不同的條件對SQL語句進行拼接,從而實現(xiàn)SQL語句的變化。與靜態(tài)SQL相比,動態(tài)SQL的優(yōu)勢是可以根據(jù)實際輸入的參數(shù)自動調(diào)整SQL語句,從而減少程序猿的工作量。舉個例子:學(xué)生信息有【學(xué)號】,【姓名】,【性別】,【班級】等信息,當(dāng)我們需要更新一個學(xué)生的班級信息時,如果使用靜態(tài)SQL語句,我們需要提供這個學(xué)生的所有信息,才能夠修改他的【班級】信息,如果使用動態(tài)SQL語句,我們只需要提供他的主鍵【學(xué)號】和新的【班級】信息,就可以了。
? ?
2.知識剖析
? ?
常用標(biāo)簽:if、where、set;foreach;bind
? ?
當(dāng)有很多條if語句時,如果只有幾條成立,那么拼裝而成的sql語句將會出現(xiàn)語法問題,比如“,”逗號會多出來,sql中的where會出現(xiàn)在sql語句的末尾。where標(biāo)簽會自動添加一個WHERE,如果if語句中有AND,還會將AND刪掉。
? ?
3.常見問題
? ?
1.字符串的拼接
? ?
2.構(gòu)造查詢條件QueryVo
? ?
4.解決方案
? ?
5.編碼實戰(zhàn)
? ?



6.擴展
? ?
7.參考文獻
? ? ? ? http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html? https://www.cnblogs.com/dongying/p/4092662.html官方文檔
等
? ?