/** * Copyright (c) 2011-2020, hubin (jobob@qq.com). * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.baomidou.mybatisplus.mapper; import org.apache.ibatis.annotations.DeleteProvider; import org.apache.ibatis.annotations.InsertProvider; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.SelectProvider; import org.apache.ibatis.annotations.UpdateProvider; import org.apache.ibatis.session.RowBounds; import java.io.Serializable; import java.util.List; import java.util.Map; /** *
* Mapper 继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能 *
** 这个 Mapper 支持 id 泛型 *
* * @author hubin * @Date 2016-01-23 */ public interface BaseMapper* 插入一条记录 *
* * @param entity * 实体对象 * @return int */ int insert(T entity); /** ** 执行 SQL 插入 *
* * @param sql * SQL语句 * @return */ @InsertProvider(type = PureSqlProvider.class, method = "sql") int insertSql(String sql); /** ** 根据 ID 删除 *
* * @param id * 主键ID * @return int */ int deleteById(Serializable id); /** ** 根据 columnMap 条件,删除记录 *
* * @param columnMap * 表字段 map 对象 * @return int */ int deleteByMap(@Param("cm") Map* 根据 entity 条件,删除记录 *
* * @param wrapper * 实体对象封装操作类(可以为 null) * @return int */ int delete(@Param("ew") Wrapper* 删除(根据ID 批量删除) *
* * @param idList * 主键ID列表 * @return int */ int deleteBatchIds(List extends Serializable> idList); /** ** 执行 SQL 删除 *
* * @param sql * SQL语句 * @return */ @DeleteProvider(type = PureSqlProvider.class, method = "sql") int deleteSql(String sql); /** ** 根据 ID 修改 *
* * @param entity * 实体对象 * @return int */ int updateById(T entity); /** ** 根据 whereEntity 条件,更新记录 *
* * @param entity * 实体对象 * @param wrapper * 实体对象封装操作类(可以为 null) * @return */ int update(@Param("et") T entity, @Param("ew") Wrapper* 执行 SQL 更新 *
* * @param sql * SQL语句 * @return */ @UpdateProvider(type = PureSqlProvider.class, method = "sql") int updateSql(String sql); /** ** 根据 ID 查询 *
* * @param id * 主键ID * @return T */ T selectById(Serializable id); /** ** 查询(根据ID 批量查询) *
* * @param idList * 主键ID列表 * @return List* 查询(根据 columnMap 条件) *
* * @param columnMap * 表字段 map 对象 * @return List* 根据 entity 条件,查询一条记录 *
* * @param entity * 实体对象 * @return T */ T selectOne(@Param("ew") T entity); /** ** 根据 Wrapper 条件,查询总记录数 *
* * @param wrapper * 实体对象 * @return int */ int selectCount(@Param("ew") Wrapper* 根据SQL查询总记录数 *
* * @param sql * @return int */ @SelectProvider(type = PureSqlProvider.class, method = "sql") int selectCountSql(String sql); /** ** 根据 entity 条件,查询全部记录 *
* * @param wrapper * 实体对象封装操作类(可以为 null) * @return List* 执行 SQL 查询,查询全部记录 *
* * @param sql * SQL语句 * @return */ @SelectProvider(type = PureSqlProvider.class, method = "sql") List