MyBatis Plus概述 + 入门程序

MyBatis Plus 是一个基于 MyBatis 的增强工具,旨在简化开发过程,提高开发效率。它提供了许多实用的功能,如代码生成器、分页插件、条件构造器等,使得开发者可以更专注于业务逻辑的实现,而不必过多关注 MyBatis 的配置和 SQL 编写。

MyBatis Plus 概述

1. 主要特性
  • 无侵入:MyBatis Plus 在 MyBatis 的基础上进行扩展,不会对 MyBatis 的现有功能造成影响。
  • 依赖少:仅依赖于 MyBatis 和 Spring,没有其他额外的依赖。
  • 强大的 CRUD 操作:内置通用的 Mapper 和 Service,只需要简单的配置即可实现单表的 CRUD 操作。
  • 支持 Lambda 表达式:通过 Lambda 表达式,方便地进行 SQL 操作。
  • 支持主键自动生成:支持多种主键生成策略,如 UUID、自增 ID 等。
  • 支持 ActiveRecord 模式:实体类只需继承 Model 类即可进行 CRUD 操作。
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需手动编写分页 SQL。
  • 内置性能分析插件:可输出 SQL 语句及其执行时间,帮助开发者优化 SQL。
  • 内置全局拦截插件:提供全局的 SQL 拦截功能,方便进行 SQL 改写和日志记录。
2. 核心组件
  • BaseMapper:提供了通用的 CRUD 方法,如 insertdeleteupdateselect 等。
  • IService:提供了更丰富的服务层方法,如分页查询、批量操作等。
  • Wrapper:条件构造器,用于构建复杂的查询条件。
  • PaginationInnerInterceptor:分页插件,支持物理分页。
  • AutoGenerator:代码生成器,可以根据数据库表结构自动生成实体类、Mapper 接口、Service 接口及其实现类。

入门程序介绍

下面我们将通过一个简单的入门程序来介绍如何使用 MyBatis Plus。

1. 环境准备
  • JDK 1.8 或更高版本
  • Maven 3.5 或更高版本
  • MySQL 5.7 或更高版本
  • Spring Boot 2.x
2. 创建 Spring Boot 项目

使用 Spring Initializr 创建一个新的 Spring Boot 项目,添加以下依赖:

  • Spring Web
  • Spring Data JPA
  • MySQL Driver
  • MyBatis Plus
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.4</version>
    </dependency>
</dependencies>
3. 配置数据库连接

application.properties 文件中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_demo?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis-plus.mapper-locations=classpath:/mapper/*.xml
mybatis-plus.type-aliases-package=com.example.demo.entity
4. 创建实体类

创建一个简单的实体类 User,并使用 MyBatis Plus 的注解:

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

@TableName("user")
public class User {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;

    // getters and setters
}
5. 创建 Mapper 接口

创建一个继承自 BaseMapper 的 Mapper 接口 UserMapper

package com.example.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;

public interface UserMapper extends BaseMapper<User> {
}
6. 配置 MyBatis Plus

在 Spring Boot 启动类上添加 @MapperScan 注解,扫描 Mapper 接口所在的包:

package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class MybatisPlusDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusDemoApplication.class, args);
    }
}
7. 编写测试代码

编写一个简单的测试类,测试 MyBatis Plus 的 CRUD 操作:

package com.example.demo;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
public class MybatisPlusDemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testInsert() {
        User user = new User();
        user.setName("John Doe");
        user.setAge(30);
        user.setEmail("john.doe@example.com");
        userMapper.insert(user);
        System.out.println("Inserted user with ID: " + user.getId());
    }

    @Test
    public void testSelect() {
        List<User> users = userMapper.selectList(null);
        users.forEach(System.out::println);
    }

    @Test
    public void testUpdate() {
        User user = userMapper.selectById(1L);
        user.setAge(31);
        userMapper.updateById(user);
        System.out.println("Updated user: " + user);
    }

    @Test
    public void testDelete() {
        userMapper.deleteById(1L);
        System.out.println("Deleted user with ID: 1");
    }
}

总结

通过以上步骤,我们创建了一个简单的 Spring Boot 项目,并集成了 MyBatis Plus。MyBatis Plus 提供了许多实用的功能,简化了 MyBatis 的开发过程,使得开发者可以更专注于业务逻辑的实现。通过继承 BaseMapper 接口,我们可以轻松实现单表的 CRUD 操作,而无需手动编写 SQL 语句。此外,MyBatis Plus 还提供了分页插件、条件构造器等实用功能,进一步提高了开发效率。

MyBatis Plus 是一个功能强大且易于使用的 MyBatis 增强工具,适用于各种规模的 Java Web 项目。通过学习和使用 MyBatis Plus,开发者可以显著提高开发效率,减少重复代码,从而更快地交付高质量的软件产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要重新演唱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值