MybatisPlus—快速入门

目录

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.rhkb.cn/news/232173.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安徽省暨合肥市“希望工程·梦想计划”小盖茨机器人捐赠启动仪式举行

1月5日&#xff0c;安徽省暨合肥市“希望工程梦想计划”小盖茨机器人捐赠启动仪式在合肥市一六八玫瑰园学校东校区举行。共青团安徽省委副书记叶征&#xff0c;北京儒布特教育科技有限公司董事牛俊明&#xff0c;北京儒布特教育科技有限公司市场总监高进&#xff0c;安徽省青基…

基于JavaWeb+SSM+Vue四六级词汇微信小程序系统的设计和实现

基于JavaWebSSMVue四六级词汇微信小程序系统的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 &#xff08;1&#xff09;课题背景 伴随着社会的快速发展, 现代社…

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK&#xff08;Software Development Kit&#xff09;是Microsoft推出的一个开源跨平台框架&#xff0c;用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一&#xff0c;为开发者提供了在多个操作系统上构建高性能、可…

WPF 使用矢量字体图标

矢量字体图标 在WPF项目中经常需要显示图标&#xff0c;但是项目改动后&#xff0c;有时候需要替换和修改图标&#xff0c;这样非常麻烦且消耗开发和美工的时间。为了快速开发项目&#xff0c;节省项目时间&#xff0c;使用图标矢量字体图标是一个非常不错的选择。 矢量字体图标…

使用爬虫爬取热门电影

文章目录 网站存储视频的原理M3U8文件解读网站分析代码实现 网站存储视频的原理 首先我们来了解一下网站存储视频的原理。 一般情况下&#xff0c;一个网页里想要显示出一个视频资源&#xff0c;必须有一个<video>标签&#xff0c; <video src"xxx.mp4"&…

大学生搜题软件,未来可期吗?

作为一家专注于软件开发的公司《智创有术》&#xff0c;我们致力于为客户提供创新、高效和可靠的解决方案。通过多年的经验和专业知识&#xff0c;我们已经在行业内建立了良好的声誉&#xff0c;并赢得了客户的信任和支持。 支持各种源码&#xff0c;网站搭建&#xff0c;APP&a…

JavaWeb 页面上显示中文乱码解决~

你们好&#xff0c;我是金金金。 场景 我正在学习servlet&#xff0c;通过write()方法向页面上写入中文数据&#xff0c;没想到显示的都是?? 乱码&#xff0c;如图 排查 很明显可以看出来页面上显示的是??&#xff0c;我猜想肯定是字符编码的问题&#xff0c;导致乱码 造成…

数据结构之堆——学习笔记

1.堆的简介&#xff1a; 接下来看一下堆的建立&#xff1b; 接下来是如何在堆中插入数据以及删除数据&#xff1a; 大根堆的插入操作类似只是改变了一下大于和小于符号&#xff0c;同时插入操作的时间复杂度为O&#xff08;logn&#xff09;。 来看几个问题&#xff1a; 答案当…

Http与Tcp协议的原理以及应用

OSI七层模型和相关协议 七层模型从上到下如下所示&#xff1a; 应用层&#xff1a;负责应用之间的通信&#xff0c;处理请求和响应的具体格式表示层&#xff1a;对于数据格式进行处理会话层&#xff1a;负责建立和断开通信连接&#xff0c;传输层&#xff1a;负责建立端口之间…

分布式【Zookeeper】

1.1 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面&#xff0c;ZooKeeper 并没有直接采用 Paxos 算法&…

适用于生物行业的生信云平台

随着基因检测技术的不断发展&#xff0c;生物信息云平台在基因检测行业的应用越来越广泛。生物信息云平台是一种基于云计算的技术&#xff0c;可以将基因检测数据存储在云端&#xff0c;并通过数据分析、挖掘等技术手段&#xff0c;对基因数据进行处理、分析和解读。 这种技术的…

使用React 18、Echarts和MUI实现温度计

关键词 React 18 Echarts和MUI 前言 在本文中&#xff0c;我们将结合使用React 18、Echarts和MUI&#xff08;Material-UI&#xff09;库&#xff0c;展示如何实现一个交互性的温度计。我们将使用Echarts绘制温度计的外观&#xff0c;并使用MUI创建一个漂亮的用户界面。 本文…

Pix2Seq 算法阅读记录

目录 前向传播过程 训练过程&#xff1a; 网络结构 前向传播过程 batch_preds--> tgt-->tgtcat(tgt, padding)-->tgt_embedding-->tgt_mask,tgt_padding_mask 以NLP的角度&#xff0c;tgt 代表了 词汇表的长度&#xff0c;encoder部分直接对图像进行处理&#…

【QT 自研上位机 与 ESP32下位机联调>>>串口控制GPIO-基础样例-联合文章】

【QT 自研上位机 与 ESP32下位机联调&#xff1e;&#xff1e;&#xff1e;串口控制GPIO-基础样例-联合文章】 1、概述2、实验环境3、 自我总结4、 实验过程1、验证上位机QT程序1、下载样例代码2、修改qt程序3、运行测试验证 2、验证下位机ESP32程序1、下载样例代码2、更改ESP3…

【AI视野·今日NLP 自然语言处理论文速览 第六十七期】Mon, 1 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 1 Jan 2024 Totally 42 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Principled Gradient-based Markov Chain Monte Carlo for Text Generation Authors Li Du, Afra Amini, Lucas…

权威测评首家通过!亚信安慧AntDB通过中国信通院数据库迁移工具专项测试

近日&#xff0c;亚信安慧数据库数据同步平台在中国信通院第17批“可信数据库”数据库迁移工具专项测试中&#xff0c;完全符合《数据库迁移工具能力要求》&#xff0c;成为首家通过标准测试的产品。这一成果标志着湖南亚信安慧科技有限公司&#xff08;简称“亚信安慧”&#…

js文件上传 分片上传/断点续传/极速秒传

(极速秒传)利用md5判断上传的文件是否存在 MD5信息摘要算法&#xff0c;一种被广泛使用的密码散列函数&#xff0c;可以产生出一个128位&#xff08;16字节&#xff09;的散列值&#xff08;hash value&#xff09;&#xff0c;用于确保信息传输完整一致。 每一个文件都会生成…

nvm如何使用

因涉及项目较多&#xff0c;node环境所需不同&#xff0c;项目依赖node环境出错原因&#xff0c;可借助nvm自由切换对应node环境&#xff0c;方便快捷。省去之前反复手动下载node版本&#xff0c;卸载安装。 nvm介绍自行搜索 nvm下载链接&#xff1a; https://github.com/co…

C++: 求1+2+3+...+n

int i 1; int sum 0; class Sum { public:Sum(){sum i;i;} };class Solution { public:int Sum_Solution(int n) {Sum a[n]; //调用n次sum的构造函数return sum;} };

NGUI基础-三大基础组件之Event System(Uicameras)

目录 主要作用 相关参数 (建议&#xff1a;红色是重点&#xff0c;黑色的了解即可&#xff09; Event Type Events go to Process Events in Event Mask​编辑 Debug Command Click Allow Multi Touch Auto Hide Cursor Sticky ToolTip/Long press ToolTip/ToolTip…