大家好,今天我们要聊的是那个让数据库操作变得简单到令人难以置信的神器——MyBatis-Plus。如果你还在为编写繁琐的数据库 CRUD 代码而头疼,那么这篇文章将是你的救星!
在介绍 MyBatis-Plus 之前,我们先来认识一下 MyBatis。
一、MyBatis
1、🤔 什么是 MyBatis?
MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型或数据库的复杂类型,是一个灵活的数据映射框架。
MyBatis 通常用于 Java 应用程序中,作为数据访问层的解决方案,它通过简化数据访问代码,让开发者可以更专注于业务逻辑的实现。
2、✨MyBatis 的主要特点
- SQL 编写灵活:MyBatis 允许开发者将 SQL 语句直接写在 XML 文件中,这样可以很容易地进行维护和调整。
- 支持映射复杂类型:MyBatis 支持将数据库中的记录集映射成 Java 对象,也支持将 Java 对象映射回数据库记录。
- 支持延迟加载:MyBatis 可以配置懒加载,即在需要的时候才加载数据,这有助于提高应用程序的性能。
- 支持注解和 XML 配置:MyBatis 支持使用注解或 XML 文件来配置 SQL 语句,提供了灵活的配置方式。
- 支持存储过程:MyBatis 可以调用数据库的存储过程,并可以处理复杂的返回类型。
- 支持动态 SQL:MyBatis 提供了动态 SQL 功能,可以根据条件动态构建 SQL 语句。
- 易于上手:MyBatis 的学习曲线相对平缓,对于初学者来说比较容易上手。
- 与 Spring 集成:MyBatis 可以与 Spring 框架无缝集成,利用 Spring 的依赖注入特性来管理 MyBatis 的 SqlSession。
3、MyBatis 主要的类和接口
MyBatis 是一个支持普通 SQL 查询、存储过程和高级映射的持久层框架。在 MyBatis 中,有一些核心的类和接口,它们构成了框架的基础。以下是一些主要的类和接口:
-
SqlSession
- 这是 MyBatis 中最重要的接口之一,它提供了执行映射 SQL 语句的能力。通过这个接口,你可以直接与数据库进行交互。
-
SqlSessionFactory
- 负责创建 SqlSession 实例。SqlSessionFactory 是线程安全的,通常由 MyBatis 的配置信息创建,并且可以在应用程序中共享。
-
SqlSessionFactoryBuilder
- 负责构建 SqlSessionFactory。它可以使用 XML 配置文件或纯 Java 配置来构建。
-
Mapper
- 这是一个接口,通常与 SQL 映射文件(XML)或注解一起使用。Mapper 接口定义了应用程序中需要执行的数据库操作。
-
MapperFactory
- 负责创建 Mapper 接口的代理实例。
-
Configuration
- 包含了 MyBatis 的全局配置信息,例如设置、类型别名、类型处理器、映射器等。
-
TypeHandler
- 用于处理 JDBC 和 Java 数据类型之间的转换。MyBatis 提供了许多内置的 TypeHandler,但也允许开发者自定义。
-
ParameterHandler
- 负责将 SQL 语句中的参数与 Java 对象的属性值绑定。
-
ResultSetHandler
- 负责从 JDBC 的 ResultSet 中提取数据并转换为 Java 对象。
-
StatementHandler
- 负责创建 JDBC Statement 或 PreparedStatement,以及设置 SQL 语句的参数和获取查询结果。
-
Executor
- 负责执行 SQL 语句,可以是简单的执行器、批量执行执行器或事务执行器。
-
Transaction
- 负责管理数据库事务。
-
DataSource
- 数据源,用于获取数据库连接。
-
Plugin
- MyBatis 允许开发者通过插件来扩展或修改 MyBatis 的行为。Plugin 接口定义了插件需要实现的