MyBatis-Plus
MyBatis-Plus 是 MyBatis 的增强工具,核心作用是简化 CRUD 操作和提升开发效率。它提供基础的增删改查方法、分页插件、条件构造器以及代码生成器,帮助减少重复代码量。MyBatis-Plus 不支持自动建表,专注于简化数据库操作,而表结构管理通常需借助其他工具
1. 对象元数据
- 元数据:指的是描述数据的数据。在 MyBatis 中,对象的元数据指的是 Java 类的属性、类型、方法等信息。
- 封装:MyBatis 通过 MetaObject类封装对象的元数据,允许在运行时动态地获取和设置对象的属性。
MetaObject 类
- 定义:MetaObject是 MyBatis 提供的一个接口,封装了对 Java 对象的元数据操作。
- 功能: 
  - 获取属性:可以通过名称获取对象的属性值。
- 设置属性:可以通过名称设置对象的属性值。
- 检查属性是否存在:可以判断对象是否具有某个属性。
 
2.处理器
MetaObjectHandler
 
- 是 MyBatis-Plus 提供的用于自动填充字段的处理器。它允许开发者在执行插入或更新操作时,自动填充某些字段的值,比如创建时间、修改时间等。
使用步骤
- 实现接口:创建一个类实现 MetaObjectHandler接口。
- 重写方法: 
  - insertFill(MetaObject metaObject):在插入时填充字段。
- updateFill(MetaObject metaObject):在更新时填充字段。
 
具体应用:
- MyBatis-Plus 的插入或更新操作,框架会在执行前自动查找所有实现了 MetaObjectHandler接口的处理器
- MyBatis-Plus 框架本身会在执行插入(save)或更新(update)操作时,自动查找并调用实现了MetaObjectHandler接口的类。

3.SQL 映射
@Mapper
- @Mapper注解确实将 MyBatis 的数据库操作接口映射到 Spring Boot 中,并将其注册为 Spring 管理的 Bean
MyBatis 的 Mapper 接口中的方法可以通过两种方式来实现对应的数据库操作:
注解方式:直接在方法上使用注解(如
@Select、@Update、@Delete等)来定义 SQL 语句。这种方式简单直观,适合 SQL 语句较短的情况。
XML 映射文件:在 XML 文件中定义 SQL 语句和映射。适合 SQL 语句复杂或需要动态条件的情况,比如你之前定义的
list方法。
// User.java (实体类)
package com.example.demo.entity;
public class User {
    private Long id;
    private String name;
    private String email;
    // Getters and Setters
}
// UserMapper.java (Mapper 接口)
package com.example.demo.mapper;
@Mapper
public interface UserMapper {
    @Select("SELECT * FROM users")
    List<User> findAll();
}
// UserService.java (服务类)
package com.example.demo.service;
@Service
public class UserService {
    private UserMapper userMapper;
    public List<User> getAllUsers() {
        return userMapper.findAll();
    }
}
// UserController.java (控制器)
package com.example.demo.controller;
@RestController
public class UserController {
    private UserService userService;
    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.getAllUsers();
    }
}



















