
com.github.dingey.mybatis.mapper.BaseMapper Maven / Gradle / Ivy
package com.github.dingey.mybatis.mapper;
import org.apache.ibatis.annotations.*;
import java.io.Serializable;
import java.util.List;
/**
* 通用模板
*
* @param 数据模型
* @author d
*/
public interface BaseMapper {
/**
* 插入
*
* @param t 参数
* @return 影响的行数
*/
@InsertProvider(type = SqlProvider.class, method = "insert")
@Options(useGeneratedKeys = true)
int insert(T t);
/**
* 可选择插入,忽略null
*
* @param t 参数
* @return 影响的行数
*/
@InsertProvider(type = SqlProvider.class, method = "insertSelective")
@Options(useGeneratedKeys = true)
int insertSelective(T t);
/**
* 更新一条记录
*
* @param t 参数
* @return 影响的行数
*/
@UpdateProvider(type = SqlProvider.class, method = "update")
int update(T t);
/**
* 更新一条记录,忽略null
*
* @param t 参数
* @return 影响的行数
*/
@UpdateProvider(type = SqlProvider.class, method = "updateSelective")
int updateSelective(T t);
/**
* 根据主键删除一条记录
*
* @param id 主键
* @return 影响的行数
*/
@UpdateProvider(type = SqlProvider.class, method = "delete")
int delete(Serializable id);
/**
* 根据主键标记删除一条记录
*
* @param id 主键
* @return 影响的行数
*/
@UpdateProvider(type = SqlProvider.class, method = "deleteMark")
int deleteMark(Serializable id);
/**
* 根据主键查询
*
* @param id 主键
* @return 影响的行数
*/
@SelectProvider(type = SqlProvider.class, method = "getById")
T get(Serializable id);
/**
* 查询一条记录
*
* @param t 参数
* @return 影响的行数
*/
//@SelectProvider(type = SqlProvider.class, method = "get")
//T get(T t);
/**
* 查询列表
*
* @param t 参数
* @return 列表
*/
@SelectProvider(type = SqlProvider.class, method = "list")
List list(T t);
/**
* 查询总数
*
* @param t 参数
* @return 总数
*/
@SelectProvider(type = SqlProvider.class, method = "count")
int count(T t);
/**
* 查询所有
*
* @return 列表
*/
@SelectProvider(type = SqlProvider.class, method = "listAll")
List listAll();
/**
* 汇总所有
*
* @return 总数
*/
@SelectProvider(type = SqlProvider.class, method = "countAll")
int countAll();
/**
* 根据主键批量查询
*
* @param ids 主键
*/
@SelectProvider(type = SqlProvider.class, method = "listByIds")
List listByIds(@Param("ids") Iterable ids);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy