MyBatis-Plus 配置与使用指南

MyBatis-Plus 配置与使用指南

一、添加 Maven 依赖

在 pom.xml 中引入 MyBatis-Plus starter 依赖,排除冲突的 MyBatis 相关组件:

<!-- MyBatis-Plus 核心依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.5</version>
    <exclusions>
        <!-- 排除与 Spring 整合的旧版本 MyBatis 依赖 -->
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </exclusion>
    </exclusions>
</dependency>

二、配置文件设置(application.yml)

配置数据源信息及 MyBatis-Plus 全局参数:

spring:
  # 数据源配置(MySQL 示例)
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db_test_v5?serverTimezone=GMT%2B8&useSSL=true
    username: root
    password: 123456

# MyBatis-Plus 全局配置
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml  # Mapper XML 文件存放路径
  type-aliases-package: com.example.demo.entity  # 实体类别名扫描包
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl  # 控制台打印 SQL 日志
  global-config:
    banner: false  # 关闭启动时的 Banner 日志
    db-config:
      table-prefix: tb_  # 数据库表名前缀(实体类名会自动拼接前缀生成表名)
      logic-delete-field: isDeleted  # 全局逻辑删除字段名
      logic-not-delete-value: 0  # 未删除状态值(默认 0)
      logic-delete-value: 1     # 已删除状态值(默认 1)

三、实体类创建

使用 MyBatis-Plus 注解映射数据库表结构:

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

/**
 * 用户实体类(对应数据库表 tb_user)
 */
@TableName("user")  // 指定数据库表名(若与实体类名+前缀一致可省略)
public class User {

    @TableId(type = IdType.AUTO)  // 主键自增策略
    private Long id;
    
    private String name;  // 姓名
    
    private Integer age;  // 年龄
}

四、创建 Mapper 接口

继承 MyBatis-Plus 提供的 BaseMapper 接口,获得基础 CRUD 能力:

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.entity.User;
import org.springframework.stereotype.Repository;

/**
 * 用户数据访问接口
 * 继承 BaseMapper 后自动拥有增删改查方法,无需手动编写 SQL
 */
@Repository  // 标识为数据访问层组件,避免 IDE 报错
public interface UserMapper extends BaseMapper<User> {
    // 如需自定义 SQL,可在此添加方法并在 Mapper XML 中实现
}

五、配置 Mapper 扫描

在 Spring Boot 主类中指定 Mapper 接口的扫描路径:

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

@SpringBootApplication
@MapperScan("com.example.demo.mapper")  // 扫描 Mapper 接口所在包
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

六、使用 MyBatis-Plus 进行数据库操作

在服务层注入 Mapper 并调用内置方法:

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;  // 注入 Mapper 接口

    /**
     * 查询所有用户(自动过滤逻辑删除数据)
     */
    public List<User> getAllUsers() {
        // selectList(null) 表示无查询条件,返回所有记录
        return userMapper.selectList(null);
    }

    // 其他操作示例:
    // 1. 根据 ID 查询:userMapper.selectById(1L)
    // 2. 新增用户:userMapper.insert(user)
    // 3. 更新用户:userMapper.updateById(user)
    // 4. 删除用户(逻辑删除):userMapper.deleteById(1L)
}

核心优势说明

简化 CRUD 操作:通过继承 BaseMapper 获得内置的增删改查方法,无需编写基础 SQL。
全局配置统一管理:表前缀、逻辑删除等参数可全局配置,减少重复代码。
SQL 日志可视化:通过配置日志实现 SQL 语句打印,便于调试。
灵活扩展:支持自定义 SQL(通过 Mapper XML)和动态查询(LambdaQueryWrapper)。

通过以上步骤,可快速集成 MyBatis-Plus 并实现高效的数据库操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值