工作學習筆記(十九)MyBatis—Plus中的BaseMapper

小张不嚣张。發表於2024-12-05
  • 定義與作用

MyBatis - Plus 中的BaseMapper是一個介面,它提供了一系列通用的資料庫操作方法。這些方法涵蓋了常見的增刪改查(CRUD)操作,是 MyBatis - Plus 簡化資料庫訪問層開發的重要元件。

  • 常用方法介紹

    1. 插入操作

int insert(T entity):這個方法用於插入一條記錄。引數entity是要插入的實體物件,它的型別由繼承BaseMapper介面時指定的泛型決定。。在內部,MyBatis - Plus 會根據實體物件的屬性自動生成插入語句並執行插入操作,返回值是插入操作影響的行數。

  • 2.刪除操作

int deleteById(Serializable id):用於根據主鍵id刪除一條記錄。其中Serializable是主鍵的型別,通常是像Long、Integer等可以序列化的型別。它會生成類似DELETE FROM table_name WHERE id =?的 SQL 語句並執行。

int deleteByMap(@Param("cm") Map<String, Object> columnMap):可以根據一個Map物件中的鍵值對來構建刪除條件。例如,如果columnMap中包含"name": "John"和"age": 20,那麼就會生成DELETE FROM table_name WHERE name = 'John' AND age = 20這樣的 SQL 語句進行刪除操作。

int delete(@Param("ew") Wrapper<T> wrapper):這個方法是透過Wrapper物件來構建複雜的刪除條件。Wrapper是 MyBatis - Plus 中用於條件構造的強大工具,可以實現動態的、靈活的條件組合,如eq(等於)、ne(不等於)、like(模糊匹配)等條件。

  • 更新操作

int updateById(T entity):根據實體物件的主鍵來更新記錄。它會將實體物件中的非空屬性更新到資料庫中對應的記錄上。例如,如果User物件的id為 1,並且name屬性有新的值,那麼就會執行更新語句將name欄位的值更新到id為 1 的記錄中。

int update(@Param("et") T entity, @Param("ew") Wrapper<T> wrapper):透過Wrapper物件構建更新條件,並且使用實體物件entity來指定更新後的內容。這使得可以在更復雜的場景下進行更新操作,比如只更新滿足特定條件的部分記錄。

  • 查詢操作

T selectById(Serializable id):根據主鍵id查詢一條記錄,並返回對應的實體物件。如果沒有找到記錄,則返回null。

List<T> selectBatchIds(@Param("idList") Collection<? extends Serializable> idList):可以批次查詢多條記錄,引數idList是一個包含主鍵值的集合,如List,它會返回一個包含查詢到的實體物件的列表。

List<T> selectByMap(@Param("cm") Map<String, Object> columnMap):根據Map物件中的鍵值對條件來查詢記錄,返回符合條件的實體物件列表。

List<T> selectList(@Param("ew") Wrapper<T> wrapper):透過Wrapper物件構建查詢條件,返回滿足條件的實體物件列表。這是一個非常靈活的查詢方法,可以實現各種複雜的查詢需求,如多條件查詢、模糊查詢等。
Page selectPage(IPage page, @Param("ew") Wrapper wrapper):用於分頁查詢,其中IPage是 MyBatis - Plus 中定義的分頁介面,包含了分頁相關的資訊,如當前頁碼、每頁記錄數等。透過這個方法可以方便地實現帶有條件的分頁查詢操作。

相關文章