IDEA的MyBatis的插件 - MyBatisX
    MyBatisPlus官网
    MyBatisPlus官方文档

    MyBatisPlus是什么?
    MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

    添加依赖:**

    1. <dependency>
    2. <groupId>com.baomidou</groupId>
    3. <artifactId>mybatis-plus-boot-starter</artifactId>
    4. <version>3.4.1</version>
    5. </dependency>
    • MybatisPlusAutoConfiguration配置类,MybatisPlusProperties配置项绑定。
    • SqlSessionFactory自动配置好,底层是容器中默认的数据源。
    • mapperLocations自动配置好的,有默认值classpath*:/mapper/**/*.xml,这表示任意包的类路径下的所有mapper文件夹下任意路径下的所有xm``l都是sql映射文件。 建议以后sql映射文件放在 mapper下。
    • 容器中也自动配置好了SqlSessionTemplate
    • @Mapper标注的接口也会被自动扫描,建议直接 @MapperScan("com.lun.boot.mapper")批量扫描。
    • MyBatisPlus优点之一:只需要我们的Mapper继承MyBatisPlusBaseMapper就可以拥有CRUD能力,减轻开发工作。

    JavaBean类:
    image.png

    package com.wzy.springbootweb02.bean;
    
    @Data//提供Getter、Setter方法
    @NoArgsConstructor//提供无参构造方法
    @AllArgsConstructor//提供全参构造
    @TableName("person")//指定数据库的表名
    public class Person {
        private Integer id;
        private String username;
        private String gender;
        private Integer age;
        private String phone;
    }
    

    Dao层接口:
    image.png

    • 继承BaseMapper<T>。因为其中定义好了操作数据的方法,这样可以简化工作,也是MyBatisPlus的特点。泛型写跟数据库对应的JavaBean类。 ```java package com.wzy.springbootweb02.dao;

    @Mapper//可在Dao层的接口上注明,也可以在 启动类上配置@MapperScan(“dao层的包路径”) public interface PersonMapper extends BaseMapper {

    }

    **service层的接口与对应的实现类:**<br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/13019604/1618991328463-f6a79707-89d0-43fa-9de5-233bfee0cab7.png#align=left&display=inline&height=108&margin=%5Bobject%20Object%5D&name=image.png&originHeight=108&originWidth=248&size=3701&status=done&style=none&width=248)
    
    - 使用`MyBatis Plus`提供的`IService`,`ServiceImpl`,减轻`Service层`开发工作。`CRU``D(增删改``查`)也不用写了。
    - `IService`:`service层`的顶级接口,里面定义了一系列的`CRUD`。
    - `ServiceImp`:service层的顶级实现类,继承了` BaseMapper<T>`,并实现` IService<T>`。。
    ```java
    public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {}
    


    • service层接口 PersonService 继承IService<T>,泛型为JavaBean类: ```java package com.wzy.springbootweb02.service;

    import com.baomidou.mybatisplus.extension.service.IService; import com.wzy.springbootweb02.bean.Person;

    //继承 Iservice顶级接口 ,泛型为JavaBean类。 // public interface PersonService extends IService {

    }

    
    - `service层`的实现类 `PersonServiceImpl` **继承**`ServiceImpl`,泛型为Dao接口与JavaBean类。并**实现**`service层的接口`。
    ```java
    package com.wzy.springbootweb02.service.impl;
    
    @Service
    public class PersonServiceImpl extends ServiceImpl<PersonMapper,Person> implements PersonService {
    
    }