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

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

相关推荐
兔兔爱学习兔兔爱学习11 小时前
Spring Al学习7:ImageModel
java·学习·spring
lang2015092812 小时前
Spring远程调用与Web服务全解析
java·前端·spring
m0_5642641813 小时前
IDEA DEBUG调试时如何获取 MyBatis-Plus 动态拼接的 SQL?
java·数据库·spring boot·sql·mybatis·debug·mybatis-plus
崎岖Qiu13 小时前
【设计模式笔记06】:单一职责原则
java·笔记·设计模式·单一职责原则
Hello.Reader13 小时前
Flink ExecutionConfig 实战并行度、序列化、对象重用与全局参数
java·大数据·flink
熊小猿14 小时前
在 Spring Boot 项目中使用分页插件的两种常见方式
java·spring boot·后端
paopaokaka_luck14 小时前
基于SpringBoot+Vue的助农扶贫平台(AI问答、WebSocket实时聊天、快递物流API、协同过滤算法、Echarts图形化分析、分享链接到微博)
java·vue.js·spring boot·后端·websocket·spring
老华带你飞14 小时前
机器人信息|基于Springboot的机器人门户展示系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·机器人·论文·毕设·机器人门户展示系统
notion202514 小时前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
rengang6615 小时前
351-Spring AI Alibaba Dashscope 多模型示例
java·人工智能·spring·多模态·spring ai·ai应用编程