MyBatis-Plus 简介与安装

MyBatis-Plus 是在 MyBatis 基础上扩展的高效 ORM 框架,它简化了 MyBatis 的配置和操作,提供了对常见操作(如增、删、改、查)的封装,使得开发者可以快速实现数据访问层的操作,提升开发效率。

本文将介绍 MyBatis-Plus 的基本概述、安装与配置、以及如何在 Spring Boot 中进行整合。


1. MyBatis-Plus 概述

MyBatis-Plus 是 MyBatis 的增强工具,它在 MyBatis 的基础上提供了以下几个特点:

1.1 MyBatis-Plus 的核心特点

  1. 无缝集成 MyBatis:MyBatis-Plus 可以无缝地与 MyBatis 集成,兼容 MyBatis 的所有特性和功能。
  2. 简化 CRUD 操作:MyBatis-Plus 提供了内置的通用 Mapper 和 Service,减少了手写 SQL 的工作量。
  3. 代码生成器:MyBatis-Plus 提供了代码生成器功能,可以根据数据库表自动生成实体类、Mapper 和 Service 等代码。
  4. 分页插件:MyBatis-Plus 内置分页插件,支持自动分页功能,简化了分页查询的实现。
  5. 条件构造器:提供了丰富的条件构造器,可以简洁地构造复杂的 SQL 查询条件。

1.2 常见功能

  • 通用 CRUD 操作:自动实现常见的增、删、改、查操作。
  • 分页查询:内置分页插件,支持分页查询操作。
  • Lambda 表达式:支持通过 Lambda 表达式构造查询条件,避免了拼接 SQL 字符串。
  • 自动代码生成:自动生成实体类、Mapper 接口、Service 层代码,减少重复劳动。

2. 安装与配置

2.1 Maven 依赖

要使用 MyBatis-Plus,首先需要将相关的 Maven 依赖添加到项目中。以下是将 MyBatis-Plus 集成到 Spring Boot 项目的 Maven 配置。

1. 添加 MyBatis-Plus 和 MyBatis 相关依赖
<dependencies>
    <!-- MyBatis-Plus 核心依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-core</artifactId>
        <version>3.4.3</version>
    </dependency>
    
    <!-- MyBatis 支持 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    
    <!-- MyBatis-Plus 分页插件依赖 -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-extension</artifactId>
        <version>3.4.3</version>
    </dependency>
    
    <!-- Spring Boot Starter JDBC(数据库连接)-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
</dependencies>
2. 配置 MyBatis-Plus 扫描 Mapper 接口

application.propertiesapplication.yml 中配置 MyBatis-Plus 的相关设置。

# MyBatis-Plus 配置
mybatis-plus.mapper-locations=classpath:/mappers/**/*.xml
mybatis-plus.type-aliases-package=com.example.domain
  • mapper-locations:指定 Mapper XML 文件的路径。
  • type-aliases-package:指定实体类所在包路径。

2.2 Spring Boot 整合 MyBatis-Plus

在 Spring Boot 项目中,MyBatis-Plus 可以通过自动配置与 Spring Boot 整合,免去大量配置。只需要在主类或配置类中启用 MyBatis 扫描即可。

@SpringBootApplication
@MapperScan("com.example.mapper") // 扫描 Mapper 接口
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
  • @MapperScan 注解用于扫描 Mapper 接口,使得 MyBatis-Plus 能够自动识别和注册这些接口。

3. 初始配置与入门示例

3.1 创建实体类

首先,创建一个实体类,它将映射到数据库表。假设有一个名为 user 的表。

@Data // Lombok 注解,自动生成 Getter、Setter 等方法
@TableName("user") // 映射到数据库中的表
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
  • @TableName 注解用于指定该类对应的数据库表名。
  • @Data 注解来自 Lombok,用于自动生成实体类的 gettersettertoString 方法。

3.2 创建 Mapper 接口

创建一个 Mapper 接口,继承 MyBatis-Plus 提供的 BaseMapper 接口,这样可以直接使用 MyBatis-Plus 提供的通用 CRUD 方法。

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

public interface UserMapper extends BaseMapper<User> {
    // 这里可以添加自定义的方法
}

BaseMapper 提供了对常见 CRUD 操作的支持,如 insertupdatedeleteselect

3.3 创建 Service 层

创建一个 Service 层来处理业务逻辑,并注入 UserMapper

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

@Service
public class UserService extends ServiceImpl<UserMapper, User> {
    // 可以在这里添加自定义的方法
}

ServiceImpl 是 MyBatis-Plus 提供的基础服务类,提供了常用的业务方法,如 saveremoveupdateById 等。

3.4 创建 Controller 层

创建一个 Controller 层,用于暴露 API。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/")
    public List<User> getAllUsers() {
        return userService.list(); // 获取所有用户
    }

    @PostMapping("/")
    public boolean addUser(@RequestBody User user) {
        return userService.save(user); // 添加用户
    }

    @PutMapping("/")
    public boolean updateUser(@RequestBody User user) {
        return userService.updateById(user); // 更新用户
    }

    @DeleteMapping("/{id}")
    public boolean deleteUser(@PathVariable Long id) {
        return userService.removeById(id); // 删除用户
    }
}

这个简单的 UserController 提供了基本的 CRUD 操作接口,使用 UserService 来调用 MyBatis-Plus 提供的服务。

3.5 启动应用并测试

启动 Spring Boot 应用后,访问接口进行测试:

  • GET /users/:获取所有用户。
  • POST /users/:创建新用户。
  • PUT /users/:更新用户信息。
  • DELETE /users/{id}:删除用户。

你可以使用 Postman 或其他 API 工具进行测试。


4. MyBatis-Plus 高级功能

4.1 分页查询

MyBatis-Plus 提供了内置的分页插件,可以轻松地实现分页查询。

启用分页插件

首先,在 application.propertiesapplication.yml 中配置分页插件:

# 启用分页插件
mybatis-plus.configuration.page-size=10
在代码中使用分页
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

public List<User> getUserList() {
    Page<User> page = new Page<>(1, 10); // 页码和每页大小
    return userMapper.selectPage(page, null).getRecords();
}

selectPage 方法会自动返回分页结果。

4.2 条件构造器

MyBatis-Plus 提供了 条件构造器,可以简化 SQL 查询条件的构建。

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 18); // 查询年龄为 18 的用户
List<User> users = userMapper.selectList(queryWrapper);

你可以通过 eqltgt 等方法构造不同的查询条件,MyBatis-Plus 会自动将其转换为 SQL。

4.3 自定义 SQL 查询

尽管 MyBatis-Plus 提供了很多通用的 CRUD 方法,但有时你可能需要编写自定义的 SQL 查询。

@Select("SELECT * FROM user WHERE age > #{age}")
List<User> selectUsersByAge(int age);

你可以直接在 Mapper 接口中使用 @Select@Update@Insert 等注解来编写自定义 SQL 查询。


5. 总结

  • MyBatis-Plus 是对 MyBatis 的增强,使得数据访问层的开发更加简单、高效。它提供了 自动化 CRUD 操作分页插件条件构造器代码生成器 等功能。
  • 通过 Spring Boot 整合 MyBatis-Plus,开发者可以更轻松地在 Spring Boot 应用中使用 MyBatis-Plus 提供的强大功能。
  • 使用 MyBatis-Plus,你可以通过简单的配置和代码,实现数据访问层的高效开发,减少了大量的模板代码和重复工作。

MyBatis-Plus 的出现大大简化了数据库操作,提升了开发效率,尤其适用于需要大量 SQL 操作的企业级应用开发。 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值