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文件地址

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

相关推荐
不能只会打代码1 分钟前
边缘视频分析平台的架构设计与性能优化——从750ms到190ms的调优之路
java·spring boot·redis·性能优化·边缘计算·物联网竞赛
小刘|2 分钟前
Spring AI Alibaba 集成和风天气 API 实战
java·服务器·前端
KANGBboy5 分钟前
java知识五(继承)
java·开发语言
AI人工智能+电脑小能手9 分钟前
【大白话说Java面试题 第117题】【并发篇】第17题:线程有几种状态,之间如何转换?
java·开发语言·面试
DIY源码阁12 分钟前
JavaSwing饮品管理系统 - MySQL版
java·数据库·mysql·eclipse
二哈赛车手40 分钟前
新人笔记---最终版智能体图片分析完整方案,包括一些总结于经验,以及各种优化点讲解
java·笔记·spring·ai·springboot
泡^泡1 小时前
Spring AI简单高仿DeepSeek问答页面
java·人工智能·spring
带刺的坐椅1 小时前
Solon v4.0 正式发布,高考记忆版
java·ai·solon·flow·solon-ai
dishugj2 小时前
iSCSI + Multipath + ASM:Oracle RAC 共享存储技术链详解
数据库·oracle
JAVA面经实录9173 小时前
操作系统(面试全覆盖)
java·计算机网络·面试