Mybatis-Plus实体类继承Model的使用

发布于:2024-04-26 ⋅ 阅读:(28) ⋅ 点赞:(0)

项目场景:

   Mybatis-Plus是Mybatis的一个增强工具,在Mybatis的基础上只做增强不做改变,简化开发、提高效率。Mybatis-Plus实体类继承Model的使用是Mybatis-Plus中的一个重要特性,它允许开发者通过继承Model类来快速实现一些通用的功能,提高开发效率。

   首先,我们需要了解什么是Model类。在Mybatis-Plus中,Model类是一个基础的数据模型类,它包含了所有实体类的通用属性和方法。继承Model类可以让我们的实体类快速拥有这些通用属性和方法,而不需要我们自己手动编写。

   接下来,我们来看一下如何使用Mybatis-Plus实体类继承Model。


代码实现

引入Mybatis-Plus的依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

然后,我们需要创建一个实体类,并让它继承Model类。例如,我们创建一个User实体类,并让它继承Model类:

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

@TableName("user")
public class User extends Model<User> {
    private static final long serialVersionUID = 1L;

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

    // getter和setter方法
}

 使用实体类操作CRUD的方法之前,需要先创建该实体类对应的Mapper类接口,如果不创建Mapper类接口将会报错:Not Found TableInfoCache

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.test.domain.User;
import org.apache.ibatis.annotations.Mapper;
 
@Mapper
public interface UserMapper  extends BaseMapper<User> {
}

使用实体类操作CRUD的使用方法跟BaseMapper里面的方法一样,BaseMapper里面有的方法,Model类里面都有。

测试代码:

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.test.User;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
 
@SpringBootTest
public class StudentModelTest {
 
    /**
     * 新增方法
     */
    @Test
    void insert(){
        User user = new User();
        user.setAge(45);
        user.setName("Model测试数据1");
        // 直接通过user对象调用
        user.insert();
    }
 
    /**
     * 查询所有
     */
    @Test
    void selectList(){
        // queryWrapper 条件为空查询所有数据
        new User().selectList(null).forEach(System.out::println);
    }
}