优秀的编程知识分享平台

网站首页 > 技术文章 正文

MybatisPlus全套Api小解(一)(mybatis_plus)

nanyue 2024-11-15 22:54:00 技术文章 2 ℃

前言

如果说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打印!

实体类 --> 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测试


Test.java --> 多条件测试


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

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

}


总结

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

Tags:

最近发表
标签列表