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