Interface BaseMapper<S extends BaseEntity>

Type Parameters:
S - 实体类类型,需继承自 BaseEntity

public interface BaseMapper<S extends BaseEntity>
一个基础的 MyBatis Mapper 接口,提供了通用的数据库操作方法。

此接口支持常见的操作如插入记录、根据主键查询等功能,同时为复杂 SQL 提供了定制化支持。 开发者可以通过继承此接口,快速实现对实体类的基本 CRUD 操作,减少重复性代码。

特性:

  • 内置多种 SQL Provider 类,用于生成常用 SQL(如插入、查询等)。
  • 支持使用注解如 @InsertProvider 和 @SelectProvider 定制 SQL 行为。
  • 通过泛型支持对不同实体类的扩展。

使用示例:

 public interface UserMapper extends BaseMapper<UserEntity> {}
 
Since:
1.0
Author:
Siwen Yu (yusiwen@gmail.com)
  • Method Details

    • insert

      @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") @InsertProvider(type=InsertWithoutPrimaryKeySqlProvider.class, method="sql") void insert(S entity)
      插入一个新的实体对象到数据库中。

      该方法会自动忽略实体类中标记为主键的字段,适用于使用数据库自增主键的表。 插入成功后,数据库生成的主键值会自动回填到实体对象的id属性中。

      Parameters:
      entity - 要插入的实体对象,不能为null
    • queryById

      @SelectProvider(type=SelectOneSqlProvider.class, method="sql") S queryById(Long id)
      根据主键ID查询单条记录。

      该方法通过指定的主键ID从数据库中查询对应的记录,并将结果映射为实体对象。 如果未找到匹配的记录,则返回null。

      Parameters:
      id - 要查询的记录的主键ID
      Returns:
      匹配的实体对象,如果未找到则返回null