package com.xt.hb.data.base.mapper;

import java.util.List;

/**
 * Mapper基类
 * 
 * @author 袁晓冬
 *
 * @param <T>
 */
public interface BaseMapper<T> {

    /**
     * 根据主键物理删除记录
     * 
     * @param id
     *            String
     * @return int
     */
    int deleteByPrimaryKey(String id);

    /**
     * 新增记录
     * 
     * @param record
     *            T
     * @return int
     */
    int insert(T record);

    /**
     * 根据主键查找记录
     * 
     * @param id
     *            String
     * @return T
     */
    T selectByPrimaryKey(String id);

    /**
     * 检索所有记录，包括记录状态为删除的记录
     * 
     * @return List<T>
     */
    List<T> selectAll();

    /**
     * 根据主键更新记录
     * 
     * @param record
     *            T
     * @return
     */
    int updateByPrimaryKey(T record);

}
