在 Java 中,`extends` 关键字表示类的继承,允许一个类继承另一个类的属性和方法。在下面代码中,`CarriageMapper` 接口继承了 `BaseMapper<CarriageEntity>`,这表示 `CarriageMapper` 接口继承了 `BaseMapper` 接口中定义的所有方法和功能,并将这些方法应用于 `CarriageEntity` 实体类。
一、具体解释
public interface CarriageMapper extends BaseMapper<CarriageEntity> {
}
- **`BaseMapper<CarriageEntity>`**:
- 这是 MyBatis-Plus 提供的一个通用 Mapper 接口。`BaseMapper` 是一个泛型接口,参数 `<CarriageEntity>` 指定了它操作的实体类型。
- `BaseMapper` 提供了很多基本的 CRUD 操作方法,这些方法可以直接使用,如 `insert()`、`deleteById()`、`updateById()`、`selectById()` 等等。
- **`CarriageMapper extends BaseMapper<CarriageEntity>`**:
- `CarriageMapper` 接口继承了 `BaseMapper<CarriageEntity>`,因此它具备了 `BaseMapper` 中所有的 CRUD 方法。
- 这样一来,你可以通过 `CarriageMapper` 直接调用这些方法对 `CarriageEntity` 实体进行数据库操作,而无需额外编写这些方法。
二、为什么要继承 `BaseMapper<CarriageEntity>`?
- **简化开发**: 通过继承 `BaseMapper`,你可以避免重复编写大量的 CRUD 代码。只需继承 `BaseMapper`,你的 Mapper 就自动具备了对指定实体的基本数据库操作能力。
- **增强代码一致性**: 使用 MyBatis-Plus 的 `BaseMapper` 可以确保所有实体类的 Mapper 具有一致的基本操作方法,提升代码的可读性和维护性。
三、举例
继承 `BaseMapper<CarriageEntity>` 后,`CarriageMapper` 接口将自动获得以下一些方法:
- `int insert(CarriageEntity entity);` — 插入一条记录
- `int deleteById(Serializable id);` — 根据ID删除记录
- `int updateById(CarriageEntity entity);` — 根据ID更新记录
- `CarriageEntity selectById(Serializable id);` — 根据ID查询记录
通过这种方式,`CarriageMapper` 变得非常简洁,而具备了丰富的功能,可以直接在服务层调用这些方法来操作 `CarriageEntity` 实体。