MybatisPlus全套Api小解(一)

前言

如果说ssm比ssh究竟好用在哪里,快速开发体验在哪里的话,那必然就是mybatis了,如果还要找一个比mybatis更优秀的dao层框架,那必然就是他的大哥——mybatis plus。


一、MybatisPuls是什么?

 MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,只是为了简化开发提交效率而存在。

官网文档地址:
  https://mp.baomidou.com/guide/

MyBatis-Plus 特性:
  https://mp.baomidou.com/guide/#%E7%89%B9%E6%80%A7

二、使用步骤

1.引入依赖

 
        
            org.projectlombok
            lombok
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.3.2
        
1234567891011

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;
1234567891011

properties配置

注:可自行忽略p6spy打印!

MybatisPlus全套Api小解(一)

实体类 --> 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;

}
12345678910111213141516171819202122

Mapper --> UserMapper.java

@Repository
public interface UserMapper extends BaseMapper {
}
123

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;
    }
12345678910111213141516

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);
    }
}

1234567891011121314151617181920

Test.java --> 简单CURD测试

MybatisPlus全套Api小解(一)


MybatisPlus全套Api小解(一)

Test.java --> 多条件测试

MybatisPlus全套Api小解(一)


MybatisPlus全套Api小解(一)

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

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

}


总结

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

展开阅读全文

页面更新:2024-06-18

标签:入时   示例   基本功能   前言   全套   路径   组件   插件   框架   逻辑   乐观   策略   简单   文档   测试   时间   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top