Mybatis plus(一)

P1 介绍

实现单表的crud操作。

还有更多的一些丰富功能。

P2 快速入门-入门案例

  • 引入mybatis-plus,集成了mybatis和mybaitsplus的所有功能,实现了自动装配效果。

例如:

XML 复制代码
     <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
  • 定义mapper,继承mybatisplus提供的basemapper,指定泛型为对应的实体类型

P3 快速入门-常用注解

mybatisplus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

  • 类名驼峰转下划线作为表名;

  • 名为id的字段作为主键;

  • 变量名驼峰转下划线作为表的字段名;(约定大于配置)

如果变量名不符合上述驼峰,这如何实现映射呢,需要自己使用注解,

mybatisplus中常用的几个注解如下:

  • @TableName:指定表名

  • @TableId,指定表中的主键字段

    生成id有三种形式,可以通过type进行指定

    • AUTO,数据库自增长,id是数据库创建的

    • INPUT,通过set方法自行输入

    • ASSIGNED_ID,分配ID,将IdentifierGenerator的方法nextId来生成id,这是mybatisplus实现的id,雪花算法生成long型id

  • @TableField,指定表中的普通字段信息

    常见场景,

    • 成员变量名与数据库字段名不一致,

    • 成员变量名以is开头且是布尔值,

    • 成员变量名与数据库关键字冲突,使用转义字符解决@TabelField("order")

    • 成员变量不是数据库字段,@TabelField(exist = false)

例如,数据库中真实表名为tb_user,而实体类为User,则可以加上注解@TabelName("tb_user"

P4 常用配置

这个配置也要熟悉

mybatisplus的配置项集成了mybatis原生配置和一些自己特有的配置,

例如:下述配置几乎都是有默认值的

XML 复制代码
#mybatis:
#  mapper-locations: classpath*:mapper/*.xml
mybatis-plus:
  type-aliases-package: com.itheima.mp.domain.po # 别名扫描包
  global-config:
    db-config:
      id-type: auto # 配置id生成的策略,如果是雪花算法就是assign_id
      logic-delete-field: deleted # 配置逻辑删除字段
      update-strategy: not_null # 更新策略,只更新非空字段
  configuration:
    default-enum-type-handler: com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler
    map-underscore-to-camel-case: true # 开启下划线和驼峰映射
    cache-enabled: false # 是否开启二级缓存
  mapper-locations: "" # mapper.xml文件地址

具体可以查看官网的示例配置,

相关推荐
Seven971 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
怒放吧德德12 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆14 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌16 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊18 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang18 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang19 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解19 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing1 天前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean1 天前
Jackson View Extension Spring Boot Starter
java·后端