资讯专栏INFORMATION COLUMN

MyBatis-Plus初步

娣辩孩 / 1711人阅读

摘要:是最流行的关系型数据库管理系统之一,在应用方面,是最好的,关系数据库管理系统应用软件。是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

本章主要是对MyBatis-Plus的初步介绍,包括一些背景知识、环境搭建、初步使用等知识和例子。
对于背景知识,主要包含对MyBatis-Plus的特性介绍、为什么使用MyBatis-Plus、MyBatis与MyBatis-Plus的区别;
对于环境搭建,主要包括JDK的安装、Eclispe的安装、MySQL的安装等;
对于初步使用,主要是以Maven项目为主的示例说明;**

1.1 MyBatis-Plus简介

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis-Plus所期望的愿景是:
我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。

如图所示:

MyBatis-Plus的代码托管地址如下所示:

码云: https://gitee.com/baomidou/my...

Github: https://github.com/baomidou/m...

1.1.1 MyBatis-Plus特性

特性

• 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑

• 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作

• 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求

• 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错

• 支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多种数据库

• 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题

• 支持 XML 热加载:Mapper 对应的 XML 支持热加载,对于简单的 CRUD 操作,甚至可以无 XML 启动

• 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作

• 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )

• 支持关键词自动转义:支持数据库关键词(order、key......)自动转义,还可自定义关键词

• 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用

• 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询

• 内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询

• 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

• 内置 Sql 注入剥离器:支持 Sql 注入剥离,有效预防 Sql 注入攻击

1.1.2 为什么要使用MyBatis-Plus

关于为什么要使用MyBatis-Plus这个问题,我结合个人的使用经验,从代码生成器、易学性、应用性、安全性角度分析,归纳如下几个方面?

(1) MyBatis的代码生成器生成的一大堆XML或者是实体及其Dao太过繁琐,而MyBatis-Plus 的代码生成器,生成的代码从Entity到Dao、Service及其实现类还有Controller包含XML,可以说是一整套生成,生成的代码十分简洁实用;

(2) MyBatis-Plus原理就是MyBatis,只不过该开源作者对其做了强化,因此丝毫不影响原理怎么使用MyBatis,只不过对于实体而言,需要加一定的注解,注解也是非常易懂的;

(3) MyBatis-Plus在不少开源项目中都很流行,比如guns、renren-security等等,同时也有不少公司也在用,
如图所示:

(4) 至于安全方面,之前我们的公司的第一个项目使用的是MyBatis,后来另外两个项目接连使用MyBatis-Plus作为持久层,目前在线上暂未出现问题,即便出现问题,也不是因为MyBatis-Plus,问题一般通常是业务方面的bug之类的;

1.1.3 MyBatis-Plus与MyBatis的区别

相同点:

它们都是用于持久层开发(DAO层,又称数据访问层),一般都用于常用的SSM框架或者是SpringBoot构建微服务,关于SSM框架实战和SpringBoot集成构建微服务,后面会讲到的。

不同点:

(1) CRUD差异,MyBatis对于CRUD没有通用的一套,一般还得自己写SQL,复制过来,复制过去,而MyBatis-Plus对于CRUD有通用的一套。通用的一套,在这里指的是DAO、Service等;

(2) 对于实体与表及其字段定义不同,MyBatis对于实体与在字段,通过XML文件方式,而My Batis-Plus通过@TableName让实体与表关联,通过@TableField与表字段关联,如果是XML文件方式的话,实体与字段映射,主要针对自定义SQL;

(3) 插件成熟和丰富程度,MyBatis历史相对比MyBatis-Plus要久,插件丰富、成熟且强大,不是MyBatis-Plus所能比拟的,但是MyBatis-Plus也一直不断的更新强化自己,不过差距肯定是有的;

(4) 通用性不同,MyBatis是外国人开发的,国内外皆通用,而MyBatis-Plus是由国内人士自发组织的开源,目前主要通用于国内;

1.2 环境准备

开发过程中,环境准备是必须的。环境准备包含这么几个指标?

第一、 运行环境;

第二、 使用工具;

从运行环境的角度看,示例如下:

例1:使用Java作为开发的语言就需要安装对应的JDK;

例2:要使用webpack打包需要Node.JS的环境;

从使用工具的角度看,示例如下:

例1:使用IDEA或者Eclipse作为Java的开发工具;

例2:例如Maven作为项目构建工具;

本节主要围绕JDK的安装、Eclipse的安装、MySQL的安装、Maven的安装等方面来讲解环境准备,这些准备主要为了后续更好的讲解。

1.2.1 JDK的下载

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JDK的下载地址如下所示:
https://www.oracle.com/techne...

如下图所示:

一般Windos安装选择的exe的安装方式,先下载后安装,关于exe安装软件的方式就不多说了。

1.2.2 Eclipse的下载

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Eclipse的下载地址如下:https://www.eclipse.org/downl...

如下图所示,可以根据自己的需要安装不同版本的Eclipse

1.2.3 MySQL的下载

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

MySQL的下载地址如下所示:
https://dev.mysql.com/downloa...

如下图所示,这是目前MySQL最新版本5.7

1.2.4 Maven的下载

Maven项目对象模型(POM) 可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven的下载地址为: http://maven.apache.org/downl...

如下图所示:

1.3 简单使用

经过前面的MyBatis-Plus简介,相信你对MyBatis-Plus有一个大致的了解。
对应的环境准备小节,我假定你环境已经全部安装好了,对应Java开发者而言搭建环境是必不可少的技能。无论是在校就读的大学生、还是出来工作后的职业者,都是基础当中的基础。下面我们进入简单实用这一环节。

项目结构如图所示:

1.3.1 导入Maven依赖

关于依赖的下载地址,可以去Maven的官方仓库中下载:
https://mvnrepository.com/tag...

如图所示:

1.3.2 准备SQL脚本

1.3.3 建立实体

1.3.4 编写DAO

1.3.5 编写XML文件和对应的配置文件

UserDao.xml

mybatis-config.xml

1.3.6 编写工具类

1.3.7 测试

最终的运行结果是通过Junit测试没有报错,输出如下:

说明:
其实这个例子看一看,可以发现与MyBatis的差别并不大,可以说就是MyBatis,不过区别还是有的,比如maven依赖并没有包含MyBatis,

但是实际上它却具有与MyBatis一样的功能,所以从这个角度来看,MyBatis-Plus就是MyBatis,因为它拥有MyBatis的所有功能,但从另外的角度来看,它们还是有一定的差异,这个差异造成了MyBatis-Plus比MyBatis要强大的多。

1.4 小结

这一章主要讲的就是MyBatis-Plus的相关背景知识和环境准备及其简单示例,通过这些理论+对应的例子能够让你对MyBatis-Plus有一个初步的了解。

关于本章示例工程源码下载地址为:
https://github.com/developers...

如需转载请注明原创地址,谢谢合作。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72697.html

相关文章

  • MyBatis集成Spring

    摘要:各方面有各种常见的良好示例,包括日志记录,声明式事务,安全性,缓存等。声明式事务管理这意味着你从业务代码中分离事务管理。但作为一种横切关注点,声明式事务管理可以使用方法进行模块化。支持使用框架的声明式事务管理。 本章主要内容包括Spring简介、Spring的两大特性(IOC和AOP)、事务MyBatis集成Spring等。也许有读者会疑惑,明明是MyBatis-Plus实战,怎么还讲...

    ckllj 评论0 收藏0
  • Spring Boot 2.x(五):整合Mybatis-Plus

    摘要:的作用可以看到,它给我们提供了一些核心的功能代码生成器和现成的接口以及可以结合的条件构造器使我们的代码变得足够优雅,分页的使用也是相当的方便,以及提供了不同的主键生成策略。 简介 Mybatis-Plus是在Mybatis的基础上,国人开发的一款持久层框架。 showImg(https://segmentfault.com/img/bVbvFk4?w=2022&h=862); 并且荣获...

    AaronYuan 评论0 收藏0
  • springboot+mybatis+mybatis-plus分页查询(简单实现)

    摘要:读取控制台内容请输入请输入正确的代码生成器全局配置实体属性注解数据源配置包配置这里有个模块名的配置,可以注释掉不用。 最近在研究mybatis,然后就去找简化mybatis开发的工具,发现就有通用Mapper和mybatis-plus两个比较好的可是使用,可是经过对比发现还是mybatis-plus比较好,个人觉得,勿喷。。。 集成还是非常简单的,然后就在研究怎么分页,开始研究通用ma...

    Pocher 评论0 收藏0
  • spring-boot 整合mybatis-plus 组成后台开发基本框架

    摘要:一直想搞一套后台基本开发框架出来,无奈太忙其实太懒,最近受到两位大佬的启发,就改动了一下大佬做好的东西。更新简单整合使用项目目录修复修改模板文件的包名问题,之后只在包里文件中的与即可地址 一直想搞一套后台基本开发框架出来,无奈太忙(其实太懒),最近受到两位大佬的启发,就改动了一下大佬做好的东西。初始版本:https://github.com/lihengming... showImg(...

    abson 评论0 收藏0

发表评论

0条评论

娣辩孩

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<