1. 程式人生 > >Java 持久層框架之 MyBatis

Java 持久層框架之 MyBatis

### MyBatis 簡介 `MyBatis` 是一個基於 `Java` 的持久層框架,它內部封裝了 `JDBC`,使開發者只需關注 `SQL` 語句本身,而不用再花費精力去處理諸如註冊驅動、建立 `Connection`、配置 `Statement` 等繁雜過程。 `Mybatis` 通過 `xml` 或註解的方式將要執行的各種 `Statement`、`PreparedStatement` 等配置起來,並通過 `Java` 物件和 `Statement` 中 `SQL` 的動態引數進行對映生成最終執行的 `SQL` 語句,最後由 `MyBatis` 框架執行 `SQL` 並將結果對映成 `Java` 物件並返回。 ### MyBatis 與 Hibernate Hibernate 框架是提供了全面的資料庫封裝機制的 **全自動 ORM**,即實現了 POJO 和資料庫表之間的對映,以及 SQL 的自動生成和執行。 相對於此,MyBatis 只能算作是 **半自動 ORM**。其著力點,是在 POJO 類與 SQL 語句之間的對映關係。也就是說,MyBatis 並不會為程式設計師自動生成 SQL 語句。具體的 SQL 需要程式設計師自己編寫,然後通過 SQL 語句對映檔案,將 SQL 所需的引數,以及返回的結果欄位對映到指定 POJO。 ### MyBatis 特點 - 在 `XML` 檔案中配置 `SQL` 語句,實現了 `SQL` 語句與程式碼的分離,給程式的維護帶來了很大便利。 - 可以結合資料庫自身的特點靈活控制 `SQL` 語句,因此能夠實現比 `Hibernate` 等全自動 `ORM` 框架更高的查詢效率,能夠完成複雜查詢。 ![file](https://img2020.cnblogs.com/other/2001438/202012/2001438-20201222223438098-738804580.png) ### Spring 整合 Mybatis #### 引入依賴 在 `pom.xml` 引入 Mybatis 相關依賴。 ```xml ``` #### 建立 Mybatis 配置檔案 在 `resource` 目錄下建立 `mybatis-config` 配置檔案。 ```xml ``` #### 建立整合配置檔案 在 `resource` 目錄下建立一個 `spring-context-mybatis.xml` 的整合配置檔案。 ```xml ``` ### CRUD 案例 #### 新增 ```xml ``` #### 刪除 ```xml ``` #### 查詢 ```xml ``` #### 更新 ```xml ``` ### MyBatis 動態 SQL 動態 SQL 主要用於解決查詢條件不確定的情況:在程式執行期間,根據使用者提交的查詢條件進行查詢。**提交的查詢條件不同,執行的 SQL 語句不同。**若將每種可能的情況均逐一列出,對所有條件進行排列組合,將會出現大量的 SQL 語句。此時,可使用動態 SQL 來解決這樣的問題。這裡的條件判斷使用的表示式為 `OGNL` 表示式。常用的動態 SQL 標