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

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

相关推荐
等什么秋14 小时前
idea2024下载
java·ide·intellij-idea
学计算机的计算基15 小时前
LeetCode 图论四题精讲:BFS、拓扑排序、Trie 树的模板与优化
java·笔记·算法
浩瀚地学15 小时前
【面试算法笔记】0202-链表-基本功能实现
java·经验分享·笔记·算法·面试
3DVisionary15 小时前
如何用单目高速DIC把“看不见“的振动变成“数得清“的数据
java·spring boot·python·数码相机·微小振动·精密件·单目高速dic
tkevinjd15 小时前
416分割等和子集
java·python·算法·leetcode·职场和发展
qq_4523962315 小时前
第三篇:《Jenkins Pipeline as Code:Declarative Pipeline 深度实战》
java·servlet·jenkins
再让我睡两分钟15 小时前
【无标题】
android·java·数据库·人工智能·prompt·ai应用开发
折哥的程序人生 · 物流技术专研16 小时前
Java 23 种设计模式:从踩坑到精通 | 番外:工厂方法 vs 抽象工厂 —— 从单产品到产品族,架构如何演进?
java·spring·java面试·抽象工厂·工厂方法·java设计模式·从踩坑到精通
砍材农夫16 小时前
spring|spring event|Spring内置事件驱动编程模型
java·数据库·spring
zzz_236817 小时前
【Java实习面试算法冲刺】回溯
java·算法·面试