什么是MyBatis、什么是MyBatis-Plus、简单详细上手案例

2023-12-13 08:15:26

什么是MyBatis

MyBatis是一个开源的Java持久层框架,用于简化与关系型数据库的交互。它通过将SQL语句与Java代码进行分离,提供了一种优雅的方式来处理数据库操作

MyBatis核心思想是将SQL语句与Java方法进行映射,使得开发人员可以通过配置文件或注解定义和管理SQL语句。这样做的好处是可以将SQL语句与Java代码解耦,降低了代码的维护成本,提高了代码的可读性和可维护性。

使用MyBatis,开发人员可以使用简单的XML配置或注解来描述数据库表和Java对象之间的映射关系,从而实现对象关系映射(ORM)。此外,MyBatis还提供了丰富的功能,如动态SQL、缓存、事务管理等,以满足各种复杂的数据库操作需求。

总的来说,MyBatis是一个轻量级、灵活且功能强大的Java持久层框架,它简化了数据库操作的编写和管理,并提供了丰富的特性和扩展点,使得开发人员可以更加高效地进行数据访问。

什么是MyBatis-Plus

MyBatis-Plus是一个基于MyBatis的轻量级、强大且功能丰富的持久层框架,它进一步简化了与关系型数据库的交互。它是在MyBatis的基础上进行扩展和增强的工具集,提供了更多便捷的开发功能和增强的查询能力。

MyBatis-Plus提供了一系列的增删改查操作的封装方法,使得开发人员可以通过简单的API调用完成常见的数据库操作,无需编写繁琐的SQL语句。它还提供了诸如分页查询、条件构造器、Lambda表达式查询等高级查询功能,极大地简化了复杂查询的编写过程。

除了常见的CRUD操作,MyBatis-Plus还提供了一些额外的功能,如自动生成代码、逻辑删除、乐观锁、多租户支持等,以进一步提升开发效率和代码质量。

总的来说,MyBatis-Plus是一个优秀的持久层框架,它在MyBatis的基础上提供了更多的便利功能和增强能力,使得开发人员可以更加方便、高效地进行数据库操作和查询。它的简洁性、易用性和功能丰富性使得它成为众多Java开发者的首选框架之一。

通过使用 MyBatis-Plus,开发者可以更加快速、高效地进行数据库操作,减少了繁琐的配置和编码工作。

但需要注意的是,MyBatis-Plus 并不是完全取代?MyBatis,而是在其基础上提供了更多的便利功能,因此在具体项目中的选择还需根据实际需求和团队技术偏好来决定。

案例测试MyBatis-Plus

项目创建:

创建SpringBoot项目(使用idea 的Spring Initializr 功能快速搭建一个SpringBoot项目)

可以在创建SpringBoot选择构建所需依赖:

常见的如

Spring Boot Lombok?:Java 的插件库实现对类的get set tostring 有无参数通过注解来简化代码

MySQL Driver:与 MySQL 数据库进行交互

Spring Web:提供了 Web 应用开发的相关功能

pom.xml导包:

当在快速搭建SpringBoot项目时没有或者忘记选择项目依赖时间,我们可以手动在pom.xml导入包。

比如这次的MyBatis-Plus 需要的包

配置文件

这来的yml也是配置文件只是这是yml更适合我们看,都是一样的,如果配置文件有相同配置,最后是以.properties为准则

代码部分:

我们这里先简单的介绍MyBatis-Plus功能:

  1. 最简单的是无需编写繁琐的SQL语句实现对数据库的增删改查等操作。

1.1使用MyBatis-Plus的条件构造器(Wrapper)

1.2这个一样可以使用手写sql,且手写sql语句的两种方式。(注解、xml)

2.代码生成器

文件布局:

数据库部分:

代码部分:

创建类对象:bean目录下的Student类

如果我们创建的数据库属性再带_,但是系统默认会使用驼峰命名,这样你的MyBatis-Plus无sql语句就会报错,原因是系统会把你数据库表字段生成StuId这样的不是stu_id,所以我们可以取消驼峰命名或者数据库我们就按照驼峰命名创建属性。

取消驼峰命:

Mapper:

配置文件声明和启动项声明:(我这里选择的是启动项声明)

这里解释一下为什么我们需要声明这个(mapper)配置:

在 MyBatis-Plus 中,使用 Mapper 接口来访问数据库。Mapper 接口是一个纯粹的 Java 接口,其中定义了一组数据库操作方法。通过在 Mapper 接口上添加注解和 XML 文件,可以实现对数据库表的增删改查操作。

在 Spring Boot 中,需要将 Mapper 接口注册为 Spring Bean,才能在其他地方进行注入和使用。为了实现自动化的 Mapper 注册,可以使用 MyBatis-Plus 提供的 @MapperScan 注解。@MapperScan 注解用于指定 Mapper 接口所在的包路径,它会自动扫描该包及其子包下的所有 Mapper 接口,并将它们注册为 Spring Bean。在启动项中声明 @MapperScan 注解后,Spring Boot 应用程序会自动扫描 Mapper 接口并将其注册为 Bean,从而使我们可以在其他地方直接注入 Mapper 接口,而无需手动注册 Bean。

因此,在启动项中声明 @MapperScan(basePackages = "mapper文件路径") 是必要的,以确保 Mapper 接口能够被正确地扫描和注册为 Spring Bean,使其能够在整个应用程序中正常使用。

总结:

MyBatis mapper接口定义的对数据库操作的语句都是单纯的java代码接口,定义了操作数据库的方法,我们可以通过MyBatis-Plus定义接口继承BaseMapper或者使用注解或者xml实现对数据库的操作,但是这个前提是要把这个接口通过MyBatis-Plus 提供的 @MapperScan 注解自动扫描 Mapper 接口并将其注册为 Bean,从而使我们可以在其他地方直接注入 Mapper 接口,而无需手动注册 Bean。

在 Spring 框架中,"Bean" 是指由 Spring 容器管理的对象实例。当你将一个类声明为 Bean 后,Spring 容器就会负责实例化、组装和管理这个对象,你可以在应用程序的其他部分通过依赖注入来引用和使用这些 Bean。

Service:

StudnetService主要实习的是对数据库的操作

DmscService主要实习的是代码生成器的操作

Controller:

点击

运行就可以了

测试:

实现功能:

mybatisplus基本使用

mybatisplus代码生成器

mybatisplus读写分离

代码生成器:

代码生成器是一个用于自动生成Java代码和MyBatis映射文件(XML文件)的工具,可以帮助开发人员快速生成与数据库表对应的实体类、Mapper接口和映射配置。

在MyBatis-Plus中,代码生成器是MyBatis-Plus工具集的一部分,提供了一套简单易用的代码生成器,使得开发人员可以非常方便地生成基础的数据访问层代码。

使用MyBatis-Plus的代码生成器,您需要先完成以下步骤:

????配置数据库连接信息:在配置文件中指定数据库连接地址、用户名、密码等信息。

????配置生成器参数:通过设置生成器参数,指定需要生成的表、生成文件输出路径、生成文件的命名规则等信息。

????编写模板文件:根据项目需求编写模板文件,定义生成的代码结构和格式。

当您完成以上步骤后,就可以启动代码生成器来生成代码了。代码生成器会读取数据库表的结构信息,根据模板文件和生成器参数,自动生成与数据库表对应的Java类、Mapper接口和XML映射文件。生成的代码包括了基本的CRUD操作,可直接应用到项目中。

代码生成器还提供了其他功能,如:

????自动生成DTO(数据传输对象)、Service接口等文件,以及自定义模板文件。

????自动识别数据库表之间的关联关系,并生成相应的代码。

????自动添加注释和日志等信息,提高代码的可读性和可维护性。

总之,代码生成器是一个能够自动生成基础数据访问层代码、提高开发效率的工具。它可以帮助开发人员减少手动编写代码的工作量,保证代码的一致性和规范性,加快项目开发进度。

代码生成器的优点包括:

???1.?提高开发效率:通过自动化生成基础代码,减少了重复劳动和手动编写代码的时间,使开发人员可以将更多精力投入到业务逻辑的开发上。

????2.保证代码一致性:生成的代码基于统一的模板和配置信息,可以保证生成的代码具有一致的格式和规范,避免了因人为因素导致的代码风格不一致问题。

????3.减少错误率:手动编写代码容易出现疏漏和错误,而代码生成器能够根据表结构自动生成代码,减少了人为错误的可能性。

????4.易于维护和更新:当数据库表结构发生变化时,只需重新运行代码生成器即可更新生成的代码,无需手动修改大量代码。

然而,代码生成器也存在一些缺点,包括:

????学习成本:需要花时间学习和理解代码生成器的配置和模板文件的编写,对于新手来说可能需要一定的学习成本。

????灵活性受限:生成的代码受限于模板文件的定义,可能无法完全满足特定的业务需求,需要额外的手动修改和扩展。

????可维护性:生成的代码可能过于“机械化”,缺乏一定的智能性和灵活性,可能导致生成的代码结构过于僵化,不易维护和扩展。

综上所述,代码生成器在提高开发效率和保证代码质量方面有着明显的优势,但也需要注意学习成本和灵活性受限这些缺点,并在实际项目中权衡利弊,选择合适的使用方式。

创建SpringBoot项目遇见 jdk1.8 的版本 只可以创建 17 和 21 的java版本,且创建不成功。

解决办法:

修改

将这个改为?https://start.aliyun.com/?就行了

文章来源:https://blog.csdn.net/weixin_45686922/article/details/134897726
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。