项目场景:
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);
}
}