MybatisPlus—快速入门

news2025/1/11 13:00:29

目录

1.使用MybatisPlus的基本步骤

1.1引入MybatisPlus的起步依赖

1.2 定义Mapper

2.MybatisPlus常用注解 

2.1 @TableName

2.2 @TableId

2.3 @TableField

2.4 小结 

3. 常用配置

4. 总结


1.使用MybatisPlus的基本步骤

1.1引入MybatisPlus的起步依赖

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

MybatisPlus的starter:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

1.2 定义Mapper

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

//在<>中填入需要进行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 单根据需要添加配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1361909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(04)刻蚀——选择刻蚀材料创建所需图形

01、光“堆叠”可不行 前期我们了解了如何制作“饼干模具”。本期,我们就来讲讲如何采用这个“饼干模具”印出我们想要的“饼干”。这一步骤的重点,在于如何移除不需要的材料,即“刻蚀(Etching)工艺”。 ▲ 图1: 移除饼干中间部分,再倒入巧克力糖浆 让我们再来回想一下…

im6ull学习总结(三-3)freetype

1、Freetype简介 FreeType是一个开源的字体渲染引擎&#xff0c;主要用于将字体文件转换为位图或矢量图形&#xff0c;并在屏幕上渲染出高质量的字体。它提供了一组API&#xff0c;使开发者能够在自己的应用程序中使用和呈现字体。 FreeType最初是作为一个独立项目开发的&…

基于X86的助力智慧船载监控系统

船载综合监控系统结合雷达、AIS、CCTV、GPS等探测技术&#xff0c;以及高度融合的实时态势与认知技术&#xff0c;实现对本船以及范围内船舶的有效监控&#xff0c;延伸岸基监控中心监管范围&#xff0c;保障行船安全&#xff0c;为船舶安全管理部门实现岸基可控的数据通信和动…

程序员必知!责任链模式的实战应用与案例分析

责任链模式让多个对象依次处理请求&#xff0c;降低发送者和接收者的耦合度&#xff0c;以在线购物为例&#xff0c;用户提交订单需经多步验证&#xff0c;通过责任链模式&#xff0c;验证器按顺序处理请求&#xff0c;先用户身份&#xff0c;再支付方式&#xff0c;最后配送地…

odoo16 连接postgresql错误

odoo16 连接postgresql错误 odoo16 用odoo15的环境出错&#xff0c;看到是psycopg2.OperationalError分析是postgresql版本问题&#xff0c;安装了13版本&#xff0c;还是出错&#xff0c;多版本共存问题如下&#xff1a; Traceback (most recent call last):File "D:\o…

@JsonFormat与@DateTimeFormat

JsonFormat注解很好的解决了后端传给前端的格式&#xff0c;我们通过使用 JsonFormat可以很好的解决&#xff1a;后台到前台时间格式保持一致的问题 其次&#xff0c;另一个问题是&#xff0c;我们在使用WEB服务的时&#xff0c;可 能会需要用到&#xff0c;传入时间给后台&am…

书生·浦语大模型实战营第一次课堂笔记

书生浦语大模型全链路开源体系。大模型是发展通用人工智能的重要途径,是人工通用人工智能的一个重要途径。书生浦语大模型覆盖轻量级、重量级、重量级的三种不同大小模型,可用于智能客服、个人助手等领域。还介绍了书生浦语大模型的性能在多个数据集上全面超过了相似量级或相近…

算法训练第六十天|84.柱状图中最大的矩形

84.柱状图中最大的矩形&#xff1a; 题目链接 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 : 输入&#xff1a;heights [2,1,5,6,2,3] 输出…

基于JavaWeb+SSM+Vue家政项目微信小程序系统的设计和实现

基于JavaWebSSMVue家政项目微信小程序系统的设计和实现 源码获取入口Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2…

Mathtype7.4安装与嵌入WPS

文章目录 Mathtype安装教程&#xff08;7.4&#xff09;Mathtype简介Mathtype下载安装软件下载软件安装运行MathType.exe运行注册表 Mathtype嵌入wps Mathtype安装教程&#xff08;7.4&#xff09; Mathtype简介 MathType是一款强大的数学公式编辑器&#xff0c;适用于教育教…

【大数据实验系列】一文轻松搞定云服务器Centos8.x下安装MySQL5.x版本,以阿里云服务器为例!(超详细安装流程)

1. 文章主要内容 本篇博客主要涉及云服务器(以阿里云服务器为例子)Centos8.x下安装MySQL软件。&#xff08;通读本篇博客需要10分钟左右的时间&#xff09;。 本篇博客内容参考于&#xff1a;centOS8安装MySql5.7 2. 详细安装教程 2.1 MySQL rpm源包下载 我们首先点击…

玩转爱斯维尔 LaTeX 模板:定制技巧一网打尽!

简介 关于 LaTeX 小编写过一些推文&#xff1a; 适合撰写课程论文的 LaTeX 模板; LaTeX 常用数学符号汇总; 免费升级 overleaf 高级账户&#xff01;; 如何下载使用期刊的 LaTeX 模板 本文基于常用的 Elsevier 期刊模板&#xff0c;小编分享个人常用的使用技巧&#xff0…

SpringCloud-高级篇(十一)

&#xff08;1&#xff09;搭建Redis-主从架构 前面我们实现了Redis的持久化&#xff0c;解决了数据安全问题&#xff0c;但是还有需要解决的问题&#xff0c;下面学习Redis的主从集群&#xff0c;解决Redis的并发能力的问题 Redis的集群往往是主从集群&#xff0c;Redsi为什么…

时间序列预测 — LSTM实现多变量多步负荷预测(Tensorflow):多输入多输出

目录 1 数据处理 1.1 导入库文件 1.2 导入数据集 ​1.3 缺失值分析 2 构造训练数据 3 LSTM模型训练 4 LSTM模型预测 4.1 分量预测 4.2 可视化 1 数据处理 1.1 导入库文件 import time import datetime import pandas as pd import numpy as np import matplotlib.p…

C++八股学习心得.6

1.C 异常处理 异常是程序在执行期间产生的问题。C 异常是指在程序运行时发生的特殊情况 异常提供了一种转移程序控制权的方式。C 异常处理涉及到三个关键字&#xff1a;try、catch、throw。 throw: 当问题出现时&#xff0c;程序会抛出一个异常。这是通过使用 throw 关键字来…

给Flutter + FireBase 增加 badge 徽章,App启动器 通知红点。

在此之前需要配置好 firebase 在flutter 在项目中。&#xff08;已经配置好的可以忽略此提示&#xff09; Firebase 配置教程&#xff1a;flutter firebase 云消息通知教程 (android-安卓、ios-苹果)_flutter firebase_messaging ios环境配置-CSDN博客 由于firebase 提供的消息…

3D空间漫游技术的日趋成熟,让博物馆数字化大放异彩!

随着科技的飞速发展&#xff0c;互联网已经成为人们生活中不可或缺的一部分。在这个数字化时代&#xff0c;博物馆也紧跟时代潮流&#xff0c;将传统的实体博物馆与现代科技相结合&#xff0c;诞生了一种全新的博物馆形式——3D线上博物馆。这种新型博物馆凭借其独特的魅力&…

RT_Thread 调试笔记:串口打印、MSH控制台 相关

说明&#xff1a;记录日常使用 RT_Thread 开发时做的笔记。 持续更新中&#xff0c;欢迎收藏。 1.打印相关 1.打印宏定义&#xff0c;可以打印打印所在文件&#xff0c;函数&#xff0c;行数。 #define PRINT_TRACE() printf("-------%s:%s:%d------\r\n", __FIL…

宏电股份5G RedCap终端产品助力深圳极速先锋城市建设

12月26日&#xff0c;“全城全网&#xff0c;先锋物联”深圳移动5G-A RedCap助力深圳极速先锋城市创新发布会举行&#xff0c;宏电股份携一系列5G RedCap终端产品应邀参与创新发布会&#xff0c;来自全国5G生态圈的各界嘉宾、专家学者济济一堂&#xff0c;共探信息化数字化创新…