可以省略很多基本的增删改查
    先导包

    1. <dependency>
    2. <groupId>com.baomidou</groupId>
    3. <artifactId>mybatis-plus-boot-starter</artifactId>
    4. <version>3.3.1.tmp</version>
    5. </dependency>
    6. <!--mysql驱动-->
    7. <dependency>
    8. <groupId>mysql</groupId>
    9. <artifactId>mysql-connector-java</artifactId>
    10. <scope>runtime</scope>
    11. <version>8.0.13</version>
    12. </dependency>
    spring.datasource.username=root
    spring.datasource.password=root
    spring.datasource.url=jdbc:mysql://127.0.0.1:3307/siterec_datacenter?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    # 配置日志
    mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    

    然后写一个mapper

    package com.dx.dx_iteminfo.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.dx.dx_iteminfo.entity.Student;
    import org.springframework.stereotype.Repository;
    
    @Repository
    public interface StuMapper extends BaseMapper<Student> {
    }
    

    自然要有student实体类

    package com.dx.dx_iteminfo.entity;
    
    import com.baomidou.mybatisplus.annotation.*;
    import lombok.*;
    import lombok.experimental.Accessors;
    
    import java.io.Serializable;
    import java.util.Date;
    
    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @ToString
    @AllArgsConstructor
    @NoArgsConstructor
    @TableName(value = "student")//指定表名默认和类名一致,可以自动配置
    public class Student implements Serializable {
    //    @TableId(type = IdType.AUTO)
        private Long id;
        private String name;
        private Integer age;
        private String email;
        @TableField(fill = FieldFill.INSERT)
        private Date createTime;
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
        @Version // 乐观锁version注解
        private Integer version;
        private String extra;
    // @TableField里面可以指定对应表中的字段,
    //默认会将驼峰转成下划线,还有其他属性可以设置,比如该字段不希望存入表中,
    //可以@TableField(exist = false)
    
    }
    

    启动类里面需要扫描一下

    package com.dx.dx_iteminfo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @MapperScan("com.dx.dx_iteminfo.mapper")
    @SpringBootApplication
    public class DxIteminfoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DxIteminfoApplication.class, args);
        }
    
    }
    

    自动生成创建修改时间需要设置一个拦截

    package com.dx.dx_iteminfo.handler;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.stereotype.Component;
    import sun.misc.Contended;
    
    import java.util.Date;
    
    @Slf4j
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
    
        // 插入时的填充策略
        @Override
        public void insertFill(MetaObject metaObject) {
            log.info("start insert fill");
            this.setFieldValByName("createTime", new Date(), metaObject);
            this.setFieldValByName("lastUpdateTime", new Date(), metaObject);
        }
    
        // 更新时的填充策略
        @Override
        public void updateFill(MetaObject metaObject) {
            log.info("start update fill.....");
            this.setFieldValByName("lastUpdateTime", new Date(), metaObject);
    
        }
    }
    

    还有一个乐观锁的

    package com.dx.dx_iteminfo.config;
    
    import com.baomidou.mybatisplus.core.parser.ISqlParser;
    import com.baomidou.mybatisplus.extension.parsers.DynamicTableNameParser;
    import com.baomidou.mybatisplus.extension.parsers.ITableNameHandler;
    import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.apache.ibatis.reflection.MetaObject;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    @MapperScan("com.dx.dx_iteminfo.mapper")
    @EnableTransactionManagement
    @Configuration // 配置类
    public class MyBatisPlusConfig {
    
        // 注册乐观锁插件
        @Bean
        public OptimisticLockerInterceptor optimisticLockerInterceptor(){
            return new OptimisticLockerInterceptor();
        }
    }