Mybatis-plus学习笔记

1.特性:

    1.无侵入:引入mybatis-plus不会对mybatis框架产生任何影响因为他是在mybatis的基础上进行了扩展

    2.依赖少:仅仅依赖mybatis和mybatis-Spring

    3.损耗小:启动会自动注入基本的curd(增删改查)操作性能基本无损耗直接面向对象操作

    4.预防sql注入:内置sql注入剥离器,防止sql注入

    5.多主键策略:支持4中的主键策略,内含分布式唯一id生成器

    6.支持热加载:mapper对应的xml支持热加载

    热加载:在运行时重新加载class(开发环境)基于字节码的更改,适用于开发

    热部署:在运行时从新加载整个应用(生产环境),清空内存从新打包 ,适用于项目

2.常用注解

  1.@TableName

      属性   类型   必填   默认值

      value  String     否    无    表名

    resyltMap  String     否       无    xml中resultMap的id

       schema     String     否       无    schema(@since 3.1.1)

  keepGlobalPrefix   boolean    否       false  是否保持全局的tablePrefix的值(如果设置了全局tablePrefix且自行设置了value的值)


  2.@TableId

      属性   类型    必填    默认值

       value     String    否          无        主键字段名

        type    Enum   否          IdType.NONE     主键类型


      type的值:

        AUTO 数据库自增

        INPUT 自行输入

        ID_WORKER 分布式全局唯一ID 长整型类型(long)

        UUID 32位UUID字符串

        NONE 无状态

        ID_WORKER_STR 分布式全局唯一ID字符串类型

  3.@TableFieId

      属性    类型    必填    默认值

      value   String   否        无            字段名

        el    String   否        无             映射位原生#{ } 逻辑相当于写在xml里的#{}部分

      exist    boolean  否      true          是否为数据库表字段

     condition   String   否      无          where实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的

     update    String   否      无          表示更新时会set

         fill     Enum   否      FieIdFill.DEFAULT   字段自动填充策略

     select     boolean     否      true           是否进行select查询

keepGlobalFormat   boolean     否      false         是否保持使用全局的Format进行处理


      condition属性:

          EQUAL 等于

          NOT_EQUAL 不等于

          LIKE 模糊查询

          LIKE_LEFT 模糊查询小于

          LIKE_RIGHT 模糊查询大于


  4.@Version 乐观锁注解

      使用:在需要乐观锁的表上加一个version字段 int类型 最好默认为1

      在实体类的字段上加上@Version注解

      乐观锁大多是基于数据版本Version记录机制实现,

      读取数据时将此版本号一同读出,之后更新时对此版本号加一,此时将版本号和数据库的进行对比

      如果提交的版本号大于数据库当前版本号则更新,否则认为是过期数据

  5.@EnumValue 枚举注解

  6.@TableLogic 表字段逻辑处理注解(逻辑删除注解)

      属性 类型 必填 默认值

      value String 否 无 逻辑未删除值

      delval String 否 无 逻辑删除值

  7.@KeySequence 序列主键策略

      属性 类型 必填 默认值

      value String 否 无 序列名

      clazz Class 否 Long.class id的类型,可以指定String.class,这样返回的Sequence值是字符串"1"

原文地址:https://www.cnblogs.com/HQ0422/p/10863008.html