返回

MyBatis-Plus保姆级快速上手教程

后端

MyBatis-Plus 简介

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis-Plus 特性

  • 无侵入:只增强不做改变,100% 兼容 MyBatis
  • 强大:支持各种数据库,如 MySQL、Oracle、PostgreSQL 等
  • 方便:使用简单,开箱即用,无需额外配置
  • 高效:提供各种优化手段,提升开发效率
  • 安全:防止 SQL 注入,保护数据安全
  • 扩展性强:支持各种插件,可轻松扩展功能

MyBatis-Plus 快速上手

1. 依赖引入

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

2. 配置数据源

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456

3. 实体类定义

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("t_user")
public class User {

    @TableId
    private Long id;
    private String name;
    private Integer age;
    private String email;

}

4. Mapper 接口定义

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

public interface UserMapper extends BaseMapper<User> {

}

5. 使用 MyBatis-Plus

5.1 插入数据

User user = new User();
user.setName("张三");
user.setAge(20);
user.setEmail("zhangsan@qq.com");

userMapper.insert(user);

5.2 查询数据

List<User> users = userMapper.selectList(null);

for (User user : users) {
    System.out.println(user);
}

5.3 修改数据

User user = userMapper.selectById(1L);
user.setName("李四");

userMapper.updateById(user);

5.4 删除数据

userMapper.deleteById(1L);

MyBatis-Plus 进阶

1. 分页查询

Page<User> page = new Page<>(1, 10);

userMapper.selectPage(page, null);

List<User> users = page.getRecords();
long total = page.getTotal();

2. 条件查询

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "张三");

List<User> users = userMapper.selectList(queryWrapper);

3. 事务管理

try {
    userMapper.insert(user1);
    userMapper.insert(user2);
} catch (Exception e) {
    e.printStackTrace();

    // 回滚事务
    throw new RuntimeException();
}

4. 性能优化

MyBatis-Plus 提供了多种性能优化手段,如:

  • 缓存:MyBatis-Plus 内置缓存,可有效减少数据库查询次数
  • 索引:MyBatis-Plus 会自动生成索引,提高查询速度
  • 分库分表:MyBatis-Plus 支持分库分表,提高数据库并发能力

MyBatis-Plus 代码生成

MyBatis-Plus 提供了代码生成器,可以根据数据库表自动生成实体类、Mapper 接口和 Service 类,大大提高开发效率。

结语

MyBatis-Plus 是一个非常优秀的持久层框架,它不仅简单易用,而且功能强大。如果你正在开发 Java 项目,强烈推荐你使用 MyBatis-Plus。