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.引入依赖

 <!-- 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> 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<User> { } 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

}


总结

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

您可能还会对下面的文章感兴趣: