Java之路—— 一文带你走进MybatisPlus

在这里插入图片描述


前言

MyBatis-Plus(简称MP)是在MyBatis的基础上进行增强和扩展的工具,目的是提供更便捷的CRUD操作和其他常用功能,MyBatis-Plus与MyBatis的一些区别和联系:

关系: MyBatis-Plus是基于MyBatis的增强工具,可以看作是对MyBatis的功能扩展。

使用方式: MyBatis是一个纯粹的SQL映射框架,需要手动书写SQL语句和Mapper接口,而MyBatis-Plus则封装了大部分常用的增删改查操作,避免了手动编写重复的代码。通过继承BaseMapper,就可以获得基本的CRUD方法。

功能扩展: MyBatis-Plus在MyBatis的基础上提供了一系列增强功能,如自动生成代码、分页插件、逻辑删除、多租户支持、动态表名等。这些功能可以减少开发人员的工作量,提高开发效率。

数据库兼容性: MyBatis虽然支持多种数据库,但在不同数据库之间可能存在一些语法差异。MyBatis-Plus会自动处理这些差异,并提供统一的API,使得开发者可以方便地切换不同的数据库。

社区活跃度: MyBatis和MyBatis-Plus都有活跃的社区支持和维护,提供了官方文档、示例代码和解决方案。开发者可以根据自身需求来选择使用哪个框架。

MyBatis是一个灵活且强大的SQL映射框架,适用于需要更灵活控制SQL语句的场景;而MyBatis-Plus则提供了更加便捷的数据访问和常用功能,适用于快速开发和提高开发效率的需求。两者可以结合使用,根据具体情况选择使用MyBatis或MyBatis-Plus。

一、什么mybatisPlus

MyBatis-Plus(简称MP)是一个基于MyBatis的增强工具,它简化了与数据库的交互操作,并提供了一些额外的特性和功能,使得开发人员可以更高效地编写数据库访问层代码。

下面是MyBatis-Plus的主要特点和功能:

1. 简化CRUD操作: MyBatis-Plus通过代码生成器和通用CRUD接口,自动生成数据表对应的实体类、Mapper接口和XML映射文件,并提供了一系列常用的CRUD方法,大幅度减少了编写和维护CRUD代码的工作量。

2. 条件构造器: MyBatis-Plus提供了Lambda方式的条件构造器,可以通过链式调用的方式灵活构建查询条件,避免了手写SQL语句的繁琐和容易出错。

3. 分页插件: MyBatis-Plus内置了分页插件,可以方便地进行分页查询操作,减轻了手动处理分页逻辑的负担。

4. 乐观锁支持: MyBatis-Plus提供了乐观锁的支持,通过在实体类中添加版本字段,并在更新操作时自动校验版本号,确保数据一致性和并发安全。

5. 主键生成策略: MyBatis-Plus支持多种主键生成策略,如自增主键、UUID、雪花算法等,可以根据具体需求选择合适的主键生成方式。

6. 逻辑删除支持: MyBatis-Plus提供了逻辑删除的功能,可以通过配置实现软删除,避免了物理删除对数据的永久性影响。

7. 自动填充字段: MyBatis-Plus支持自动填充字段,如创建时间、更新时间等,减少了手动设置这些字段的工作量。

8. 多租户支持: MyBatis-Plus提供了多租户的支持,可以根据不同的租户ID自动过滤查询结果,并保证租户数据的隔离性和安全性。

二、mybatisplus的开发步骤

使用MyBatis-Plus进行开发的基本步骤:

1. 引入依赖: 在项目中引入MyBatis-Plus的相关依赖,可以通过Maven或Gradle进行管理。通常需要引入mybatis-plus-core和对应的数据库驱动依赖。

2. 创建数据库表:根据业务需求,在数据库中创建相应的表结构。

3. 配置数据源: 在项目的配置文件中配置数据库连接信息,包括数据库驱动、URL、用户名和密码等。

4. 创建实体类: 根据数据库表的结构,创建对应的Java实体类。使用MyBatis-Plus提供的注解或继承父类来简化实体类的定义。

5. 创建Mapper接口: 使用MyBatis-Plus的方式,无需手动编写Mapper接口和SQL语句。直接继承BaseMapper接口,并进行相关的泛型配置即可。

6. 配置MapperScannerConfigurer: 在项目的配置文件中配置Mapper接口的扫描路径,使得MyBatis-Plus能够自动扫描并生成Mapper代理对象。

7. 编写Service层代码: 创建Service接口和实现类,定义业务逻辑。可以使用MyBatis-Plus提供的Service层抽象接口和实现类来简化操作。

8. 运行测试: 编写测试类,调用Service层代码进行数据操作,并检查结果是否符合预期。

Mybatis-Plus还提供了丰富的查询、更新、删除等操作方法,以及自动生成代码的功能,可以进一步简化开发过程。同时,建议参考MyBatis-Plus的官方文档,深入了解其更多的功能和用法。

三、快速开始

1.首先需要添加 MyBatis-Plus 依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.3.1.tmp</version>
</dependency>

完整性依赖文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.lyh.test</groupId>
    <artifactId>test-mybatis-plus</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>test-mybatis-plus</name>
    <description>测试 -- 测试 MyBatis-Plus 功能</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1.tmp</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.使用一个表
在这里插入图片描述
3.配置xxx.yml文件中配置 mysql 数据源信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://localhost:3306/testMyBatisPlus?useUnicode=true&characterEncoding=utf8

4.编写表对应的 测试实体类

@Data
public class User {
    
    
    private Long id;
    private String name;
    private int age;
    private String email;
}

5.编写操作实体类的 Mapper 类。
 直接继承 BaseMapper,这是 mybatis-plus 封装好的类。


import bean.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
    
    
}

6.主启动

@MapperScan("mapper")
@SpringBootApplication
public class TestMybatisPlusApplication {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(TestMybatisPlusApplication.class, args);
    }

}

7.测试类

@SpringBootTest
class TestMybatisPlusApplicationTests {
    
    

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
    
    
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        for(User user:userList) {
    
    
            System.out.println(user);
        }
    }
}

ok,大概就是这个样子了,详细的过程需要我们去看官方的文档

猜你喜欢

转载自blog.csdn.net/m0_68987535/article/details/131384995
今日推荐