浅浅的园子

导航

 

*MyBatis-Plus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率

 

  *开发方式

    *基于MyBatis使用MyBatisPlus

    *基于Spring使用MyBatisPlus

    *基于SpringBoot使用MyBatisPlus

 

手动添加MP起步依赖

 

  注意事项

    由于MP并未被收录到idea的系统内置配置,无法直接选择加入

定义数据接口,继承BaseMapper<User>

  直接可CURD

 

MyBtais特性

  *无侵入︰只做增强不做改变,不会对现有工程产生影响

  *强大的 CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作

  *支持Lambda:编写查询条件无需担心字段写错

  *支持主键自动生成

  *内置分页插件......

 

标准数据层开发

  *标准数据层CRUD功能

    

  *分页功能

   1.设置分页拦截器作为Spring管理bean

      

 

  开启日志

      

  

  2.执行分页查询

      

 

DQL编程控制

  *条件查询方式

    *MyBatisPlus将书写复杂的SQL进行了封装,使用编程的形式完成查询条件的组合

    条件查询----设置查询条件

      *格式一:常规格式

            

      *格式二:链式编程格式

            

      *格式三:lambda格式(推荐)

            

      *格式四:lambda(推荐)

 

       

    条件查询----组合查询条件

      *并且(and)

            

      *或者(or)

 

            

 

    条件查询----null值处理

      *if语句控制条件追加

            

 

   查询投影

      *查询结果包含模型类中部分属性

            

      *查询结果包含模型类中未定义的属性

            

   

   查询条件

    *范围匹配(> 、 = 、 between)

    *模糊匹配( like)

    *空判定( null)

    *包含性匹配( in)

    *分组(group )

    *排序( order)

    *.....

    

      *用户登录(eq匹配)

            

      *购物设定价格区间、户籍设定年龄区间(le ge匹配 或 between匹配)

            

      *查信息,搜索新闻(非全文检索版:like匹配)

            

      *统计报表(分组查询聚合函数)

            

   字段映射与表名映射

      *名称:@TableField

      *类型:属性注解

      *位置:模型类属性定义上方

      *作用:设置当前属性对应的数据库表中的字段关系

      *范例:

            

      *相关属性

        value(默认):设置数据库表字段名称

        select:设置属性是否参与查询,此属性与select()映射配置不冲突

 

          *名称:@TableField

      *类型:属性注解

      *位置:模型类属性定义上方

      *作用:设置当前属性对应的数据库表中的字段关系

      *范例:

            

      *相关属性:

        value:设置数据库表字段名称

        exist:设置属性在数据库表字段中是否存在,默认为true。此属性无法与value合并使用

 

      *名称:@TableName

      *类型:类注解

      *位置:模型类定义上方

      *作用:设置当前类对应的数据库表关系

      *范例:

            

      *相关属性:

        value:设置数据库表名称

 

DML编程控制

  Insert

    id生成策略控制

      *不同的表应用不同的id生成策略

        *日志:自增(1,2,3,4,.......)

      *购物订单:特殊规则(FQ23948AK3843)

      *外卖单:关联地区日期等信息(10 04 20200314 34 91)

      *关系表:可省略id

      *......

 

    

 

      *名称:@TableId

 

      *类型:属性注解

 

      *位置:模型类中用于表示主键的属性定义上方

 

      *作用:设置当前类中主键属性的生成策略

 

      *范例:

 

            

 

      *相关属性

        *value:设置数据库主键名称

        *type:设置主键属性的生成策略。值参照IdType枚举值

        枚举值有以下:

          AUTO(0):使用数据库id自增策略控制id生成

          NONE(1)∶不设置id生成策略

          INPUT(2):用户手工输入id

          ASSIGN_ID(3):雪花算法生成id(可兼容数值型与字符串型)

          ASSIGN_UUID(4): 以UUID生成算法作为id生成策略

 

  Delete

    多记录操作

      *按照主键删除多条记录

            

 

      *根据主键查询多条记录

 

            

 

  

    逻辑删除

      *删除操作业务问题:业务数据从数据库中丢弃

      *逻辑删除:为数据设置是否可用状态字段,删除时设置状态字段为不可用状态,数据保留在数据库中

      步骤:

        1.数据库表中添加逻辑删除标记字段

 

                   

  

        2.实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

 

                  

 

 

        3.配置逻辑删除字面值(此处是spring全局配置)

 

                  

    执行SQL语句:

 

 

    执行数据结果:

            

      

  Update

    乐观锁

      *业务并发现象带来的问题:如商品秒杀抢购

      步骤:

        1.数据库中添加锁标记字段

 

              

 

        2.实体类中添加对应字段,并设定当前字段为逻辑删除标记字段

 

              

 

         3.配置乐观锁拦截器实现锁机制对应的动态SQL语句拼装

 

              

 

       4.使用乐观锁机制在修改前必须先获取到对应数据的verion方可正常进行

 

              

 

      执行修改前先执行查询语句

 

            

 

      执行修改时使用version字段作为乐观锁检查依据

 

            

 

 

  快速开发

    代码生成器:

      *模板:MyBatisPlus提供

      *数据库相关配置:读取数据库获取信息

      *开发者自定义配置:手工配置

 

      1.maven导入

          

 

      2.

 

          

 

      3.

 

          

 

      4.

 

          

 

      5.

 

          

 

      6.

 

          

 

posted on 2023-07-05 21:42  梦浅  阅读(21)  评论(0编辑  收藏  举报