天天看點

架構:MybatisPlus基礎筆記1 .MyBatisPlus 介紹2.MyBatisPlubs 引入3. 通用CURD4.條件構造器 EntityWrapper

1 .MyBatisPlus 介紹

     MyBatis-Plus(簡稱 MP),是一個 MyBatis 的增強工具包,隻做增強不做改變.

    為簡化開 發工作、提高生産率而生.

  1.2 代碼及文檔釋出位址

      官方位址:  http://mp.baomidou.com

      代碼釋出位址:   Github: https://github.com/baomidou/mybatis-plus   

      Gitee:  https://gitee.com/baomidou/mybatis-plus

      文檔釋出位址:  http://mp.baomidou.com/#/?id=%E7%AE%80%E4%BB%8B

   1.3 前置知識

       在學習MP之前,需要掌握Mybatis,Spring,Maven.

2.MyBatisPlubs 引入

 2.1 導入jar包

<dependency>      
    <groupId>com.baomidou</groupId> 
    <artifactId>mybatis-plus</artifactId>      
    <version>2.3</version> 
</dependency> 
           

2.2 在application.xml中修改Mybatis自帶的MybatisSqlSessionFactoryBean 為 MP自帶的 MybatisSqlSessionFactoryBean

<bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"> 
           

3. 通用CURD

3.1 基礎

1) 提出問題: 

假設我們已存在一張 tbl_employee 表,且已有對應的實體類 Employee,實作 tbl_employee 表的 CRUD 操作我們需要做什麼呢?

2) 實作方式:

基于 Mybatis    需要編寫 EmployeeMapper 接口,并手動編寫 CRUD 方法  提供 EmployeeMapper.xml 映射檔案,并手動編寫每個方法對應的 SQL 語句.

基于 MP  隻需要建立 EmployeeMapper 接口, 并繼承 BaseMapper 接口.這就是使用 MP需要完成的所有操作,甚至不需要建立 SQL 映射檔案。

public class EmployeeMapper extends BaseMapper<Employee>{
}
           

3.2 插入操作

1) Integer insert(T entity);

2) @TableName

3) 全局的 MP 配置: <property name="tablePrefix" value="tbl_"></property>

4) @TableField

5) 全局的 MP 配置: <property name="dbColumnUnderline" value="true"></property>

6) @TableId

7) 全局的 MP 配置: <property name="idType" value="0"></property>

8) 支援主鍵自增的資料庫插入資料擷取主鍵值 Mybatis: 需要通過 useGeneratedKeys  以及  keyProperty 來設定 MP: 自動将主鍵值回寫到實體類中

9) Integer  insertAllColumn(T entity)

3.3 更新操作

1) Integer updateById(T entity);

2) Integer updateAllColumnById( T entity)

3.4 查詢操作

1) T selectById(Serializable id);

2) T selectOne( T entity);

3) List<T> selectBatchIds(List<? extends Serializable> idList);

4) List<T> selectByMap( Map<String, Object> columnMap);

5) List<T> selectPage(RowBounds rowBounds,  Wrapper<T> wrapper);

3.5 删除操作

1) Integer deleteById(Serializable id);

2) Integer deleteByMap( Map<String, Object> columnMap);

3) Integer deleteBatchIds(List< extends Serializable> idList);

3.6 通用 CRUD 小結

1) 以上是基本的 CRUD 操作,如您所見,我們僅僅需要繼承一個 BaseMapper 即可實作 大部分單表 CRUD 操作。BaseMapper 提供了多達 17 個方法給大家使用, 可以極其方 便的實作單一、批量、分頁等操作。極大的減少開發負擔!

4.條件構造器 EntityWrapper

4.1 EntityWrapper 簡介

1) Mybatis-Plus 通過 EntityWrapper(簡稱 EW,MP 封裝的一個查詢條件構造器)或者 Condition(與 EW 類似) 來讓使用者自由的建構查詢條件,簡單便捷,沒有額外的負擔, 能夠有效提高開發效率

2) 實體包裝器,主要用于處理 sql 拼接,排序,實體參數查詢等

3) 注意: 使用的是資料庫字段,不是 Java 屬性!

4) 條件參數說明:

架構:MybatisPlus基礎筆記1 .MyBatisPlus 介紹2.MyBatisPlubs 引入3. 通用CURD4.條件構造器 EntityWrapper
 4.2 舉個栗子

List<Employee> userList = employeeMapper.selectPage(new Page<Employee>(2, 3), 
                         new EntityWrapper<Employee>()
                        .eq("last_name", "MybatisPlus")                   
                        .eq("gender", 1)                   
                        .between("age", 18, 50)   );
           

繼續閱讀