为什么我在com.baomidou.mybatisplus.core.mapper中的BaseMapper类中找到的T selectById(Serializable id);没有具体实现
时间: 2024-09-28 18:06:37 浏览: 30
mybatis-plus-core-3.5.3.1.jar
`BaseMapper` 是 MyBatis-Plus 中的一个通用 Mapper 接口模板,它提供了一些基础的方法声明,如 `selectById()` 和 `insert()`, 等等,但并未包含具体的实现代码。这个接口的设计理念是为了让开发者能够复用已有的通用查询逻辑,而将业务特定的操作留给具体的子类去实现。
当你在 `BaseMapper<T>` 类中看到 `T selectById(Serializable id)` 这样的方法,T 是泛型,表示映射的对象类型,比如 User、Article 等。开发者需要在自定义的实体类对应的 Mapper 接口中(例如 UserMapper 或 ArticleMapper),对 `selectById()` 进行具体实现,例如:
```java
public interface UserMapper extends BaseMapper<User> {
@Select("SELECT * FROM user WHERE id = #{id}")
User selectById(Serializable id);
}
```
在这个例子中,`UserMapper` 实现了从数据库中通过 ID 查询用户的功能,并提供了 SQL 语句。`BaseMapper` 提供了框架结构,子类负责填充实际数据访问逻辑。
阅读全文