MybatisPlus全套Api小解

MybatisPlus全套Api小解

文章目录

  • MybatisPlus全套Api小解
  • 前言
  • 一、MybatisPuls是什么?
  • 二、使用步骤
    • 1.引入依赖
    • 2.建表示例 --> 数据自个加
    • properties配置
        • 注:可自行忽略p6spy打印!
    • 实体类 --> User.java
        • 注:创建时间、修改时间、乐观锁、逻辑删除不提倡手动增加或修改
    • Mapper --> UserMapper.java
    • MybatisCaseConfig.java
        • 注:组件注册!OptimisticLockerInterceptor 在mybatispuls3.20之后弃用了
    • MybatisCaseHandler.java
        • 注:填充策略
    • Test.java --> 简单CURD测试
    • Test.java --> 多条件测试
    • 条件构造器用法较多就不一一示例了 --> {
  • 总结


前言


一、MybatisPuls是什么?

MybatisPuls是一门技术

二、使用步骤

1.引入依赖

 <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- mybatis-plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>

2.建表示例 --> 数据自个加

CREATE TABLE `user` (
  `id` bigint(20) NOT NULL COMMENT '主键ID',
  `name` varchar(30) DEFAULT NULL COMMENT '姓名',
  `age` int(11) DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
  `gmt_create` datetime DEFAULT NULL COMMENT '创建时间',
  `gmt_modified` datetime DEFAULT NULL COMMENT '修改时间',
  `version` int(11) DEFAULT NULL COMMENT '乐观锁',
  `deleted` int(1) unsigned zerofill DEFAULT '0' COMMENT '逻辑删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

properties配置

注:可自行忽略p6spy打印!

MybatisPlus全套Api小解_第1张图片

实体类 --> User.java

注:创建时间、修改时间、乐观锁、逻辑删除不提倡手动增加或修改

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
     
    private Long id;
    private String name;
    private Integer age;
    private String email;
    /*创建时间*/
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;
    /*修改时间*/
    @TableField(fill = FieldFill.UPDATE)
    private Date gmtModified;
    /*乐观锁*/
    @Version
    private Integer version;
    /*逻辑删除*/
    @TableLogic
    private Integer deleted;

}

Mapper --> UserMapper.java

@Repository
public interface UserMapper extends BaseMapper<User> {
     
}

MybatisCaseConfig.java

注:组件注册!OptimisticLockerInterceptor 在mybatispuls3.20之后弃用了

@MapperScan("com.hjc.demo.mybatiscase.mapper")
@EnableTransactionManagement
@Configuration
public class MybatisCaseConfig {
     


    /*OptimisticLockerInterceptor 之前得插件已被弃用*/
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
     
       MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
       /*乐观锁插件*/
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
       /*分页插件*/
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

MybatisCaseHandler.java

注:填充策略

@Slf4j
@Component
public class MybatisCaseHandler implements MetaObjectHandler {
     

    /*插入时填充策略*/
    @Override
    public void insertFill(MetaObject metaObject) {
     
        log.info("start insertFill succeed");
        this.setFieldValByName("gmtCreate",new Date(),metaObject);
        this.setFieldValByName("gmtModified",new Date(),metaObject);

    }
    /*修改时填充策略*/
    @Override
    public void updateFill(MetaObject metaObject) {
     
        log.info("start updateFill succeed");
        this.setFieldValByName("gmtModified",new Date(),metaObject);
    }
}

Test.java --> 简单CURD测试

MybatisPlus全套Api小解_第2张图片
MybatisPlus全套Api小解_第3张图片

Test.java --> 多条件测试

MybatisPlus全套Api小解_第4张图片
MybatisPlus全套Api小解_第5张图片

条件构造器用法较多就不一一示例了 --> {

          构造器路径:https://baomidou.com/guide/wrapper.html#abstractwrapper

}


总结

简单得案例就基本完成了!如需深入请进入官方文档自行学习!

你可能感兴趣的:(java,docker,mysql,数据库)