地址:https://baomidou.com/pages/226c21/

    使用第三方组件:

    1.导入对应的依赖

    2.研究依赖如何配置

    3.代码如何编写

    4.提高扩展技术能力

    步骤

    1、创建数据库mybatis_plus

    2、创建User表

    1. DROP TABLE IF EXISTS user;
    2. CREATE TABLE user
    3. (
    4. id BIGINT(20) NOT NULL COMMENT '主键ID',
    5. name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    6. age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    7. email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    8. PRIMARY KEY (id)
    9. );
    10. INSERT INTO user (id, name, age, email) VALUES
    11. (1, 'Jone', 18, 'test1@baomidou.com'),
    12. (2, 'Jack', 20, 'test2@baomidou.com'),
    13. (3, 'Tom', 28, 'test3@baomidou.com'),
    14. (4, 'Sandy', 21, 'test4@baomidou.com'),
    15. (5, 'Billie', 24, 'test5@baomidou.com');
    16. -- 真实开发中,version(乐观锁)、deleted(逻辑删除)、gmt_creategmt_modified

    3、编写项目,初始化项目 (使用SpringBoot初始化项目!)

    4、导入依赖

     <!--数据库驱动-->
      <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
      </dependency>
      <!--lombok-->
      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
      </dependency>
      <!--mybatis-plus-->
      <!--mybatis-plus 是自己开发的,并非官方的-->
      <dependency>
          <groupId>com.baomidou</groupId>
          <artifactId>mybatis-plus-boot-starter</artifactId>
          <version>3.0.5</version>
      </dependency>
    

    说明:使用mybatis-plus可以节省大量代码,尽量不要同时导入 mybatis 和 mybatis-plus 会有版本差异

    5、连接数据库,与MyBatis相同

    spring.datasource.username=root
    spring.datasource.password=cedric1010
    spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    
    # MySQL8需要增加时区的配置  serverTimezone=GMT%2B8
    

    6.传统方式pojo-dao(连接mybatis,配置mapper.xml文件)- service-controller

    6、使用MyBatis-Plus后

    • POJO ```java import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;

    @Data @AllArgsConstructor @NoArgsConstructor public class User {

    private Long id;
    private String name;
    private Integer age;
    private String email;
    

    }

    
    - Mapper接口
    ```java
    package com.cedric.mybatisplus.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.cedric.mybatisplus.pojo.User;
    import org.springframework.stereotype.Repository;
    
    // 在对应的Mapper上面继承基本的接口 BaseMapper
    @Repository //代表持久层
    public interface UserMapper extends BaseMapper<User> {
        // 所有的CRUD操作都已经编写完成了
    }
    
    • 注意点,需要在主启动类上去扫描mapper包下的所有接口@MapperScan("com.cedric.mybatisplus.mapper")
    • 测试类中测试 ```java package com.cedric.mybatisplus;

    import com.cedric.mybatisplus.mapper.UserMapper; import com.cedric.mybatisplus.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;

    import java.util.List;

    @SpringBootTest class MyBatisPlusApplicationTests {

    // 继承了BaseMapper,所有的方法都来自父类,也可以编写自己的扩展方法
    @Autowired
    private UserMapper userMapper;
    @Test
    void contextLoads() {
        // 参数是一个Wrapper,条件构造器,这里先不使用
        // 查询全部用户
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }
    

    }

    ```

    • 结果

    image.png

    SQL和方法都是MyBatis-Plus写好的