一、基本概念和使用步驟
1、MyBatis框架是什麼?
是一個數據持久層框架,是對JDBC的操作數據庫的封裝。
2、設計理念:
基於原生的SQL進行設計。
3、MyBatis的優缺點以及應用場景?
優點:
和JDBC相比,減少了代碼量。
MyBatis是最簡單的數據持久化框架,便於學習。
SQL語句寫在XML文件裏,從程序代碼中徹底分離,降低了耦合度。
提供了XML標籤,可以動態的編寫SQL語句。
提供映射標籤,支持對象與數據庫的字段進行關係映射。
缺點:
SQL語句編寫量大,對開發人員的編寫SQL語句功底有要求。
SQL語句依賴於數據庫,所以數據庫的移植性差。
使用場景:
MyBatis專注於SQL本身,是一個靈活的數據層解決方案。
適用於互聯網項目。
4、MyBatis的使用步驟?
1)引入MyBatis的jar包,和對應的數據庫jar包,以及SQL文件。
2)編寫實體類:要求實體類的屬性和數據表字段一一對應。
3)編寫操作數據接口:添加基礎的數據操作方法。
4)編寫實現數據操作的配置文件:要求和對應的接口同名。
5、resultMap的使用?
resultMap是結果集映射標籤,可以將查詢到的複雜類型的數據映射到一個結果集中。
屬性:
id:表示結果集的唯一標識
type:映射結果類型,默認是要配置全類名。
子節點:
id:表示數據表的主鍵對應的實體類的屬性
result:配置其他字段對應的屬性。
子節點屬性:
property:實體類的屬性名。
column:數據庫表的字段名。
二、動態SQL
1、什麼是動態SQL?
使用MyBatis裏面的標籤,對傳入的參數進行判斷,根據結果,對sql語句進行拼接。
2、常用標籤
if標籤:在標籤的test屬性中添加判斷條件。動態sql的核心標籤
where標籤:用於替代sql語句中的where命令。
set標籤:替代sql語句中的set更新命令。
forEach標籤:遍歷集合用的。
choose標籤:相當於java中的switch結構,用於選擇。
when標籤:
otherwise標籤:
3、#{}和${}的區別?
#{} | ${} |
#將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號 | $將傳入的數據直接顯示生成在sql中 |
可以防止SQL注入 | 不能防止SQL注入 |
預編譯sql語句使用?佔位符代替 | 使用字符串替換 |
一般優先使用#{} | 一般用於傳入數據庫對象,如表名,字段名. |