MyBatis-Plus主要提供了哪些功能?

MyBatis-Plus主要提供了哪些功能?

MyBatis-Plus是一个基于 MyBatis 的增强工具库,它简化了 MyBatis 在开发过程中的常见操作,提供了一些便捷的功能。以下是 MyBatis-Plus 主要提供的功能:

  1. CRUD 操作

MyBatis-Plus 提供了优秀的 CRUD 操作,简化了开发人员从0开始自主编写 CURD 代码,并且支持分页查询。

例如,以下是在 Mybatis-plus 中使用 Lambda 处理器进行查询:

List<User> userList = userMapper.selectList(Wrappers.<User>lambdaQuery()
                .eq(User::getAge, 25)
                .like(User::getName, "雨")
                // 这里可以添加所有 sql 操作,如 between、orderBy desc 等
);
  1. 条件构造器

MyBatis-Plus 提供了方便高效的条件构造器。 该构造器可以帮助开发人员快速构建数据查询条件,省去手写 SQL 的繁琐过程,提高了代码可读性和减少了错误率。

例如,以下例子是先使用 lambda 表达式构造一个 Select 查询条件,然后组合多个排序条件:

List<User> userList =
  userMapper.selectList(
    Wrappers.lambdaQuery(User.class)
            .gt(User::getAge, 18)
            .and(wrapper -> wrapper.gt(User::getAge, 30).or().eq(User::getEmail, "[email protected]"))
            .orderByAsc(User::getAge)
            .orderByDesc(User::getCreateTime)
  );
  1. 自动代码生成器

MyBatis-Plus 提供了一个方便的自动代码生成器,可以根据现有的数据库表自动生成 Entity、Mapper、Service 和 Controller 等所有相关的类。

例如,我们在 Maven 中添加以下代码,就可以通过执行启动器自动生成代码:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>x.x.x</version>
</dependency>
  1. 分页查询

MyBatis-Plus 对分页功能提供了非常好的支持。可以将分页条件作为参数传递给 MyBatis Mapper 方法,并返回分页数据 Page 对象,非常方便快捷。

例如,以下例子是查询 user 表中第一页的 10 条数据:

Page<User> userPage = new Page<>(1, 10);
userMapper.selectPage(userPage, Wrappers.emptyWrapper());
  1. 主键策略配置

MyBatis-Plus 主键策略提供各种类型选择,支持自增 Id、UUID、REDIS等等多种方式。 开发人员只需在实体类上用注解声明即可。

例如,以下例子是自动生成唯一主键(ID),并且 ID 在插入数据前已经赋值了。

@Data
public class User {
    
    
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;

    private String name;

    private Integer age;
}

综上所述,MyBatis-Plus 提供了许多 MyBatis 中没有直接支持的功能,如代码生成器、条件构造器、主键策略配置等。其最大的优点在于提供了快捷、方便的编码方式,并且良好地与 MyBatis 结合,是开发人员提高开发效率和降低维护成本的优秀工具库。

猜你喜欢

转载自blog.csdn.net/qq_51447496/article/details/131166993