MyBatis-Plus的几种常见用法

简介: MyBatis-Plus 为 MyBatis 提供了许多增强功能,使得开发更加便捷高效。通过基础的 CRUD 操作、条件构造器、分页插件和自动填充等功能,开发者可以显著减少代码量,提高开发效率。在实际应用中,根据具体需求选择合适的功能模块,能够更好地利用 MyBatis-Plus 提升项目开发效率。

MyBatis-Plus的几种常见用法

MyBatis-Plus(MP)是一个 MyBatis 的增强工具,它在不改变 MyBatis 核心功能的基础上,为其提供了一系列强大的功能和便捷的操作。以下是 MyBatis-Plus 的几种常见用法,涵盖基本的 CRUD 操作、条件构造器、分页插件和自动填充等内容。

一、基本CRUD操作

MyBatis-Plus 提供了基础的 CRUD 接口,使得开发者无需编写大量重复的 SQL 语句,只需继承相应的 Mapper 接口即可使用。

  1. 新增记录

    @Autowired
    private UserMapper userMapper;
    
    public void addUser(User user) {
        userMapper.insert(user);
    }
    ​
    
  2. 删除记录

    @Autowired
    private UserMapper userMapper;
    
    public void deleteUserById(Long id) {
        userMapper.deleteById(id);
    }
    ​
    
  3. 更新记录

    @Autowired
    private UserMapper userMapper;
    
    public void updateUser(User user) {
        userMapper.updateById(user);
    }
    ​
    
  4. 查询记录

    @Autowired
    private UserMapper userMapper;
    
    public User getUserById(Long id) {
        return userMapper.selectById(id);
    }
    
    public List<User> getAllUsers() {
        return userMapper.selectList(null);
    }
    ​
    

二、条件构造器

条件构造器(Wrapper)是 MyBatis-Plus 提供的强大功能,用于动态构建查询条件,避免拼接 SQL 语句。

  1. 单条件查询

    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("name", "John");
    List<User> users = userMapper.selectList(queryWrapper);
    ​
    
  2. 多条件查询

    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.eq("name", "John").gt("age", 18);
    List<User> users = userMapper.selectList(queryWrapper);
    ​
    
  3. 模糊查询

    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.like("name", "John");
    List<User> users = userMapper.selectList(queryWrapper);
    ​
    

三、分页插件

分页查询是开发中常见的需求,MyBatis-Plus 提供了分页插件,简化分页查询的实现。

  1. 配置分页插件

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
    ​
    
  2. 分页查询

    IPage<User> page = new Page<>(1, 10); // 查询第1页,每页10条记录
    QueryWrapper<User> queryWrapper = new QueryWrapper<>();
    queryWrapper.gt("age", 18);
    IPage<User> userPage = userMapper.selectPage(page, queryWrapper);
    ​
    

四、自动填充

MyBatis-Plus 支持自动填充功能,能够在插入和更新时自动填充字段值。

  1. 定义自动填充字段

    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    ​
    
  2. 配置自动填充处理器

    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
    
        @Override
        public void insertFill(MetaObject metaObject) {
            this.setFieldValByName("createTime", new Date(), metaObject);
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
            this.setFieldValByName("updateTime", new Date(), metaObject);
        }
    }
    ​
    

思维导图

MyBatis-Plus 常见用法

基本CRUD操作

条件构造器

分页插件

自动填充

新增记录

删除记录

更新记录

查询记录

单条件查询

多条件查询

模糊查询

配置分页插件

分页查询

定义自动填充字段

配置自动填充处理器

总结

MyBatis-Plus 为 MyBatis 提供了许多增强功能,使得开发更加便捷高效。通过基础的 CRUD 操作、条件构造器、分页插件和自动填充等功能,开发者可以显著减少代码量,提高开发效率。在实际应用中,根据具体需求选择合适的功能模块,能够更好地利用 MyBatis-Plus 提升项目开发效率。

目录
相关文章
|
8月前
|
Java 数据库连接 数据库
Mybatis-plus中的QueryWrapper的多种用法!(总结)
Mybatis-plus中的QueryWrapper的多种用法!(总结)
1132 0
|
8月前
|
关系型数据库 Java 数据库连接
MyBatis-Plus高级用法
【1月更文挑战第5天】MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window) 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
135 2
|
8月前
|
SQL Java 数据库
深入解析MyBatis-Plus中静态工具Db的多种用法及示例
深入解析MyBatis-Plus中静态工具Db的多种用法及示例
739 0
|
1月前
|
SQL Java 数据库连接
MyBatis-Plus高级用法:最优化持久层开发
MyBatis-Plus 通过简化常见的持久层开发任务,提高了开发效率和代码的可维护性。通过合理使用条件构造器、分页插件、逻辑删除和代码生成器等高级功能,可以进一步优化持久层开发,提升系统性能和稳定性。掌握这些高级用法和最佳实践,有助于开发者构建高效、稳定和可扩展的企业级应用。
85 13
|
4月前
|
SQL XML Java
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
文章介绍了MyBatis中动态SQL的用法,包括if、choose、where、set和trim标签,以及foreach标签的详细使用。通过实际代码示例,展示了如何根据条件动态构建查询、更新和批量插入操作的SQL语句。
mybatis复习03,动态SQL,if,choose,where,set,trim标签及foreach标签的用法
|
3月前
|
SQL XML Java
Mybatis的<where>,<if>等标签用法
这篇文章详细解释了Mybatis中<where>和<if>等标签的用法,展示了如何在SQL动态构建中有效地过滤条件和处理逻辑分支。
331 1
|
3月前
|
SQL Java 数据库连接
Mybatis的<insert>,<update>,<delete>标签用法
这篇文章详细讲解了Mybatis中<insert>, <update>, <delete>标签的使用方法,并提供了示例代码来展示如何执行数据库的增删改操作。
282 0
|
4月前
|
SQL XML Java
mybatis :sqlmapconfig.xml配置 ++++Mapper XML 文件(sql/insert/delete/update/select)(增删改查)用法
当然,这些仅是MyBatis功能的初步介绍。MyBatis还提供了高级特性,如动态SQL、类型处理器、插件等,可以进一步提供对数据库交互的强大支持和灵活性。希望上述内容对您理解MyBatis的基本操作有所帮助。在实际使用中,您可能还需要根据具体的业务要求调整和优化SQL语句和配置。
89 1
|
6月前
|
Java 数据库连接 mybatis
Mybatis查询传递单个参数和传递多个参数用法
Mybatis查询传递单个参数和传递多个参数用法
97 11
|
6月前
|
SQL Java 数据库连接
Mybatis中@Param的用法和作用
Mybatis中@Param的用法和作用
171 11