MybatisPlus—快速入门

目录

1.使用MybatisPlus的基本步骤

1.1引入MybatisPlus的起步依赖

[1.2 定义Mapper](#1.2 定义Mapper)

2.MybatisPlus常用注解

[2.1 @TableName](#2.1 @TableName)

[2.2 @TableId](#2.2 @TableId)

[2.3 @TableField](#2.3 @TableField)

[2.4 小结](#2.4 小结)

[3. 常用配置](#3. 常用配置)

[4. 总结](#4. 总结)


1.使用MybatisPlus的基本步骤

1.1引入MybatisPlus的起步依赖

MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。因此我们可以用MybatisPlus的starter替换Mybatis的starter。(如果不替换,同时添加两个依赖会报错)

MybatisPlus的starter:

java 复制代码
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

1.2 定义Mapper

将自定义的Mapper继承MybatisPlus提供的BaseMapper接口:

java 复制代码
//在<>中填入需要进行CRUD的实体类型
public interface UserMapper extends BaseMapper<User> { }

通过继承接口,可以使用 BaseMapper 中大量现有的方法,而不需要我们自己编写,方便快捷。


2.MybatisPlus常用注解

思考1: MybatisPlus是怎么通过传入的实体类类型,自动找到数据库对应的表,并且对其进行CRUD的操作呢?
答1: MybatisPlus会通过MP约定,寻找数据库中对应的表。

约定1.类名驼峰转下划线作为表名

约定2.名为id的字段作为主键

约定3.变量名驼峰转下划线作为表的字段名
思考2: 如果自己使用的表名或属性名不符合MP约定,应该怎么做才能让MybatisPlus识别到?
**答2:**使用注解
**注意:**一定要让MybatisPlus知道哪个属性代表id字段,否则无法进行CRUD,会导致报错;

2.1 @TableName

**作用:**用来指定表名

2.2 @TableId

**作用:**用来指定表中的关键字段(id)信息

可以通过设置type的值来选择合适的id策略:

idType.AUTO:数据库自增加;

idType.INPUT:通过set方法自行输入;

idType.ASSIGN _ID(默认选择):自动分配 ID,接口ldentifierGenerator的方法nextld来生成id默认实现类为DefaultldentifierGenerator雪花算法。

2.3 @TableField

**作用:**用来指定表中的普通字段信息

常用场景:

1.成员变量名与数据库字段名不一致

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

3.成员变量名与数据库关键字冲突

4.成员变量不是数据库字段

2.4 小结

MybatisPlus是如何获取实现CRUD的数据库表信息的?

1.默认以类名驼峰转下划线作为表名

2.默认把名为id的字段作为主键

3.默认把变量名驼峰转下划线作为表的字段名

MybatisPlus的常用注解有哪些?

1.@TableName: 指定表名称及全局配置

2.@Tableld: 指定id字段及相关配置

3.@TableField: 指定普通字段及相关配置

ldType的常见类型有哪些?

AUTO、ASSIGN ID、INPUT

使用@TableField的常见场景是?

1.成员变量名与数据库字段名不一致

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

3.成员变量名与数据库关键字冲突

4.成员变量不是数据库字段


3. 常用配置

具体可参考官方文档:MybatisPlus使用配置


4. 总结

MyBatisPlus使用的基本流程

1.引入起步依赖

2.自定义Mapper继承BaseMapper

3.在实体类上添加注解声明表信息

4.在application.yml 单根据需要添加配置

相关推荐
Nu11PointerException44 分钟前
JAVA笔记 | ResponseBodyEmitter等异步流式接口快速学习
笔记·学习
亦枫Leonlew2 小时前
三维测量与建模笔记 - 3.3 张正友标定法
笔记·相机标定·三维重建·张正友标定法
考试宝2 小时前
国家宠物美容师职业技能等级评价(高级)理论考试题
经验分享·笔记·职场和发展·学习方法·业界资讯·宠物
黑叶白树4 小时前
简单的签到程序 python笔记
笔记·python
@小博的博客4 小时前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
幸运超级加倍~5 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
南宫生5 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步6 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
love_and_hope6 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen6 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习