MyBatisPlus快速入门(一)MyBatisPlus简介、历史和优势

news2024/10/6 4:11:12

  • 一、什么是 MyBatisPlus?
  • 二、MyBatisPlus 相关文档
    • 2.1 官网
    • 2.2 Github源码
    • 2.3 官方文档
  • 三、MyBatisPlus 的历史
  • 四、MyBatisPlus 的特性和优势
    • 4.1 特性
    • 4.2 优势
  • 五、如何学习 MyBatisPlus & 专栏计划

一、什么是 MyBatisPlus?

MyBatisPlus(简称MP)是一款基于 MyBatis 的增强工具,它可以方便地与 SpringBoot、SpringMVC 等框架集成,简化了 MyBatis 的开发流程,提高了开发效率。相比原生的MyBatis,MyBatisPlus 提供了许多实用的功能,如自动代码生成、分页查询、逻辑删除、多租户支持、条件构造器等等。

自动代码生成是 MyBatisPlus 最为出色的功能之一,它可以根据数据库表结构自动生成Java实体类、Mapper接口以及XML映射文件,避免了手写代码的繁琐过程,同时也减少了出错的可能性。另外,MyBatisPlus 还提供了强大的条件构造器,使得SQL语句的编写更加灵活和可读性更高。

在实际项目中,MyBatisPlus 已经得到了广泛的应用,它不仅能够减少开发时间,提高代码质量和可维护性,还能够提升系统性能和扩展性。如果您正在使用 MyBatis 作为数据访问层框架,那么不妨试试 MyBatisPlus,相信它能够带给您意想不到的惊喜。


二、MyBatisPlus 相关文档

2.1 官网

同学们可以进入 MyBatisPlus 官网,对 MyBatisPlus 有一个基础的了解。

https://www.baomidou.com

在这里插入图片描述

2.2 Github源码

MyBatisPlus 是开源项目,同学们可以查看 MyBatisPlus 的源码,并可以进行按需修改。

https://github.com/baomidou/mybatis-plus

在这里插入图片描述

2.3 官方文档

同学们可以阅读 MyBatisPlus 官方文档,进行快速入门。

https://mybatis.plus/guide/

在这里插入图片描述


三、MyBatisPlus 的历史

MyBatisPlus(简称MP)最早是由一个名为 baomidou 的开源工程团队在 2016 2016 2016 年创建的。起初,这个团队只是想为了简化自己的项目开发而创建了 MyBatisPlus 这个增强工具。但随着时间的推移,MyBatisPlus逐 渐受到了越来越多开发者的关注和喜爱。

随着版本的不断迭代,MyBatisPlus 提供了越来越多实用的功能,例如自动代码生成、分页查询、逻辑删除、多租户支持、条件构造器、性能分析等等。此外,MyBatisPlus 还提供了一系列的插件扩展点,使得开发者可以通过自定义插件来扩展 MyBatisPlus 的功能。

目前,MyBatisPlus 已经成为 MyBatis 社区中非常受欢迎的增强工具之一,它的GitHub仓库也拥有了超过 1.4 1.4 1.4 万 STAR 的高人气。MyBatisPlus 的历史充满了开发者们的创新和努力,未来也将继续发展壮大并为更多的开发者带来便利。


四、MyBatisPlus 的特性和优势

4.1 特性

根据 官方文档 介绍,MyBatisPlus 拥有以下特性。

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求。
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。
  • 支持主键自动生成:支持多达 4 种主键策略,可自由配置,完美解决主键问题。
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作。
  • 支持自定义全局通用操作:支持全局通用方法注入。
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用。
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询。
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库。
  • 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询。
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作。

4.2 优势

MyBatisPlus作为 MyBatis 的增强工具,有以下优势:

  • 简化开发流程:MyBatisPlus 提供了许多实用的功能,如自动代码生成、分页查询、逻辑删除、条件构造器等等,使得开发流程更加便捷。

  • 提高开发效率:自动代码生成功能可以自动生成 Java 实体类、Mapper 接口以及 XML 映射文件,避免了手写代码的繁琐过程;而分页查询和条件构造器则能够快速地编写出复杂的 SQL 语句。

  • 支持多种数据库:MyBatisPlus 支持主流的关系型数据库,包括 MySQL、Oracle、SQL Server、PostgreSQL 等等,同时也支持一些非关系型数据库。

  • 提高代码质量和可维护性:MyBatisPlus 提供了丰富的插件扩展点,使得开发者可以通过自定义插件来扩展 MyBatisPlus 的功能,从而提高代码的质量和可维护性。

  • 方便集成 SpringBoot 等框架:MyBatisPlus与SpringBoot、SpringMVC 等框架集成非常方便,可以快速搭建一个完整的Web应用。

总之,MyBatisPlus 在 MyBatis 的基础上提供了更多实用的功能,能够提高开发效率、代码质量和可维护性,深受开发者们的喜爱。


五、如何学习 MyBatisPlus & 专栏计划

《MyBatisPlus快速入门》 专栏将讲解 MyBatisPlus 的以下技术。

  1. MyBatisPlus 快速入门
  2. MyBatisPlus 日志输出
  3. MyBatisPlus 添加、编辑、删除、基础查询数据
  4. MyBatisPlus 雪花算法
  5. MyBatisPlus 主键策略
  6. MyBatisPlus 自动填充
  7. MyBatisPlus 乐观锁
  8. MyBatisPlus 分页查询
  9. MyBatisPlus 逻辑删除
  10. MyBatisPlus 性能分析
  11. MyBatisPlus 条件查询器
  12. MyBatisPlus 代码生成器

计划从 2023 年 5 月 23 日起,每周更新 3 篇, 期待同学们前来学习!

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

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

相关文章

MyBatis中使用第三方分页插件PageHelper完成分页功能

文章目录 一、前言二、基于插件拦截方式1、自定义插件2、使用第三方插件完成分页1、分页插件的配置2、分页插件的使用 一、前言 分页是web应用程序非常重要的一个技术。数据库中的数据可能是成千上万的,不可能把这么多的数据一次显示在浏览器上面。一般根据每行数据…

2023年4月CSDN客服月报|解决3个重大问题和26个次要问题,采纳1个用户建议

听用户心声,解用户之需。hello,大家好,这里是《CSDN客诉报告》第19期,接下来就请大家一同回顾我们4月份解决的bug~ 一、重大问题 1、【猿如意】ChitGPT近期老是提示“我回答不过来”的问题 反馈量:10 2、…

【星戈瑞】Sulfo-Cyanine7 maleimide磺化CY7标记马来酰亚胺

水溶性Cyanine7 mal是一种常用的细胞标记物,可以被用于细胞荧光成像等应用中。它的分子结构中含有Cyanine7和mal两部分,其中Cyanine7是一种红外荧光染料,可以发出红外光,而mal则是一种水溶性的化合物,可以使Cyanine7分…

响应式与自适应的区别

响应式与自适应的区别: 响应式:一套适配多端适配不同的屏幕设备,即不同的视口分辨率 自适应:多套页面不同视口分辨率大小显示同样的网页rem、百分比等相对单位 注意: 在开发中,项目的响应式,一些…

Java技术接单

今天给大家介绍一个阶段性(周期性)能获取一定收益的Java技术接单群,分享给大家!主要对搞Java的粉丝有帮助,因为可以赚点小钱,对Java技术的要求不高! 那些感兴趣或者想直接加技术群的我给大家讲一…

JAVA8 Stream

1 Steam流式思想概述 Stream和IO流(InputStream/OutputStream)没有任何关系,请暂时忘记对传统IO流的固有印象! Stream流式思想类似于工厂车间的“生产流水线”,Stream流不是一种数据结构,不保存数据,而是对数据进行加…

Vue 3 第二十一章:组件九(组件高级特性-组件的混入和继承)

文章目录 1. 组件的混入2. 组件的继承总结 Vue 中的组件混入和继承功能允许我们在多个组件之间共享代码,从而提高代码的可重用性和可维护性。 1. 组件的混入 混入是一种将多个对象合并为一个对象的技术。在 Vue 3 中,我们可以使用 mixins 属性来定义混…

ThingsBoard的Actor模型

0、概述 下面是我从网上查阅资料总结下来的. 1、背景 多线程编程是每个程序员的基本功,同时也是开发中的难点,处理各种“锁”的问题是让人十分头痛的一件事。例如,设计一个转账功能,怎么保证在多线程下能正常运行?你可能会说,这个简单,在进行转账操作前,先对两个账户…

【实战项目】使用C语言和easyX,一起完成数字拼图游戏吧!快来挑战一下吧~

这款简易的拼图游戏包含了15个数字方块,你需要将它们按照顺序排列成1~15的数字,就能完成游戏。 在游戏中会记录你完成拼图所用的时间。我想强调的是,一个精彩的游戏并不一定需要使用图片。只要功能和手感都做得出色,游戏同样能够…

从0到1,深刻理解Linux权限

[Linux]深刻理解Linux权限 从0到1,深刻理解Linux权限Linux权限的概念Linux权限管理Linux文件访问者文件类型和访问权限文件类型访问权限 文件访问权限设置修改文件权限修改文件拥有者修改所属组 umask掩码目录权限目录权限问题粘滞位 权限总结: 从0到1&a…

1688商品详细信息价格SKU接口

随着新零售时代的到来,越来越多的企业开始关注电商平台,其中1688平台作为国内重要的B2B电商平台之一,对于企业发展、产品销售等方面有着重要的价值。在使用1688平台出售商品时,如何优化商品详情页、提高搜索排名、增加商品曝光度&…

PG15.3.0源码编译安装日志插件pgbadger(上)

一、开启相关日志 修改后alter一定要重启,才会修改 pg_ctl restart -D /usr/local/pgsql/data -l logfile按照下面的方法一个个修改。 log_destination csvlog # 可选 logging_collector on log_min_duration_statement 0 log_line_prefix %t [%p]: us…

(转载)MATLAB智能算法30个案例分析(2)——基于遗传算法和非线性规划的函数寻优算法

以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。 1 理论基础 1.1 非线性规划 非线性规划是20世纪50年代形成的一门新兴学科。1951年库恩和塔克发表的关于最优性条件(后来称为库恩塔克条件)的论文是非线性规划诞生的标志。非线性规划研究…

聚会游戏玩什么?UMO轻松炒热气氛

UMO是一款有趣的多人益智桌游,考验玩家耐力和技巧的比拼!玩家将在游戏中通过特定的规则来出牌,谁先出完所有牌谁就赢,游戏非常讲究策略和运气哦~ 当玩家手上只剩一张牌时,必须喊出UMO!游戏因此得名。【数字…

自学网络安全,最应该先学的五大技能树是什么?(附学习路线图)

前言: 近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,全球网络安全岗位缺口达500万,中国约100万,产业人才需求逐年增加,网络安全行业的相关岗位成为炙手可热的职业。…

COMSOL光电案列应用实操教学:

COMSOL多物理场仿真软件以高效的计算性能和杰出的多场耦合分析能力实现了精确的数值仿真,已被广泛应用于各个领域的科学研究以及工程计算,为工程界和科学界解决了复杂的多物理场建模问题。光电作为物理类专业课程中极为重要的一部分,其教学内…

如何做到设备维护事半功倍?

在工业生产过程中,设备故障可能导致生产停机、成本增加和安全风险。因此,及时监测设备的健康状况,预测潜在故障,并采取相应的维护措施至关重要。 振动在线监测系统是一种有效的工具,可以实时监测设备振动,并…

3. Linux下实现统计文件单词个数和出现次数

本文介绍的是在Linux下实现统计文件单词个数和出现次数&#xff0c;以及实践过程中遇到的gcc编译器不匹配问题 一、实现文件单词个数统计 #include <stdio.h>#define IN_Word 1 #define OUT_Word 0 #define INIT OUT_Wordint splite(char c){if ((c ) || (c\n) || (c\t…

ChatGPT ?、AI 和机器人,是为人类打工还是将取代人类?

随着ChatGPT引起全球热潮&#xff0c;我们看到这类AI大模型技术比较热门的落地领域聚焦在办公平台、家庭、电商营销、社交文娱等多个方向&#xff0c;又进一步向下渗透到生产和生活的各个环节。这些场景大多数聚焦于线上&#xff0c;涉及内容创作和交互方式变革两个方向&#x…

【全网首发】华秋CAM:免费Gerber查看器,离线版!

自华秋DFM可制造性和组装性分析软件上线以来&#xff0c;已为众多硬件工程师、PCB工程师、CAM工程师、电子爱好者、PCBA采购、SMT工厂等众多行业用户&#xff0c;解决了各种PCB设计隐患和规避各类生产风险等问题&#xff0c;并获得了30万用户的一致好评&#xff01; 现在&…