//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package com.baomidou.mybatisplus.core.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
public interface BaseMapper<T> extends Mapper<T> {
int insert(T entity);
int deleteById(Serializable id);
int deleteById(T entity);
int deleteByMap(@Param("cm") Map<String, Object> columnMap);
int delete(@Param("ew") Wrapper<T> queryWrapper);
int deleteBatchIds(@Param("coll") Collection<?> idList);
int updateById(@Param("et") T entity);
int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper);
T selectById(Serializable id);
List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);
List<T> selectByMap(@Param("cm") Map<String, Object> columnMap);
default T selectOne(@Param("ew") Wrapper<T> queryWrapper) {
List<T> ts = this.selectList(queryWrapper);
if (CollectionUtils.isNotEmpty(ts)) {
if (ts.size() != 1) {
throw ExceptionUtils.mpe("One record is expected, but the query result is multiple records", new Object[0]);
} else {
return ts.get(0);
}
} else {
return null;
}
}
default boolean exists(Wrapper<T> queryWrapper) {
Long count = this.selectCount(queryWrapper);
return null != count && count > 0L;
}
Long selectCount(@Param("ew") Wrapper<T> queryWrapper);
List<T> selectList(@Param("ew") Wrapper<T> queryWrapper);
List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper);
List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper);
<P extends IPage<T>> P selectPage(P page, @Param("ew") Wrapper<T> queryWrapper);
<P extends IPage<Map<String, Object>>> P selectMapsPage(P page, @Param("ew") Wrapper<T> queryWrapper);
}
这是 MyBatis-Plus 框架中的 `BaseMapper` 接口,它定义了一系列数据库操作的方法,这些方法通常用于数据访问对象(DAO)中。以下是这些方法的注释和简要说明:
1. `int insert(T entity)`:
- 插入一条记录。
2. `int deleteById(Serializable id)`:
- 根据主键 ID 删除一条记录。
3. `int deleteById(T entity)`:
- 根据主键 ID 删除一条记录。
4. `int deleteByMap(@Param("cm") Map<String, Object> columnMap)`:
- 根据列条件删除记录。
5. `int delete(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件删除记录。
6. `int deleteBatchIds(@Param("coll") Collection<?> idList)`:
- 根据一批主键 ID 批量删除记录。
7. `int updateById(@Param("et") T entity)`:
- 根据主键 ID 更新一条记录的数据。
8. `int update(@Param("et") T entity, @Param("ew") Wrapper<T> updateWrapper)`:
- 根据条件更新记录的数据。
9. `T selectById(Serializable id)`:
- 根据主键 ID 查询一条记录。
10. `List<T> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList)`:
- 根据一批主键 ID 批量查询记录。
11. `List<T> selectByMap(@Param("cm") Map<String, Object> columnMap)`:
- 根据列条件查询记录。
12. `T selectOne(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件查询一条记录。如果查询结果不唯一,则抛出异常。
13. `boolean exists(Wrapper<T> queryWrapper)`:
- 检查是否存在符合条件的记录。
14. `Long selectCount(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件统计记录数。
15. `List<T> selectList(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件查询记录列表。
16. `List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件查询记录列表,并返回 Map 形式的结果。
17. `List<Object> selectObjs(@Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件查询记录列表,并返回 Object 形式的结果。
18. `<P extends IPage<T>> P selectPage(P page, @Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件进行分页查询,并返回分页结果。
19. `<P extends IPage<Map<String, Object>>> P selectMapsPage(P page, @Param("ew") Wrapper<T> queryWrapper)`:
- 根据条件进行分页查询,返回 Map 形式的分页结果。
这些方法提供了对数据库的常见操作,通过继承 `BaseMapper` 接口,您可以快速构建数据访问对象(DAO),并使用 MyBatis-Plus 框架来处理数据访问,无需编写原始的 SQL 语句。这些方法的注释通常比较清晰,描述了它们的作用和用法。根据实际需求,您可以选择适合的方法来执行数据库操作。