All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.acyou.leo.framework.service.Service Maven / Gradle / Ivy

There is a newer version: 1.6.0.RELEASE
Show newest version
package cn.acyou.leo.framework.service;

import java.util.Collection;
import java.util.List;

/**
 * 顶级 Service,含有基础Mapper所有方法。
 *
 * @author youfang
 * @version [1.0.0, 2020/4/17]
 **/
public interface Service {
    /**
     * 保存一个实体,null的属性也会保存,不会使用数据库默认值
     *
     * @param record 记录
     * @return 影响行数
     */
    int insert(T record);

    /**
     * 保存一个实体,null的属性不会保存,会使用数据库默认值
     *
     * @param record 记录
     * @return 影响行数
     */
    int insertSelective(T record);

    /**
     * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列
     *
     * @param recordList 记录List
     * @return 影响行数
     */
    int insertList(List recordList);

    /**
     * 批量插入,支持批量插入的数据库可以使用,例如MySQL,H2等,另外该接口限制实体包含`id`属性并且必须为自增列
     * 这个支持数据库默认值
     * @param recordList 记录List
     * @return 影响行数
     */
    int insertListSelective(List recordList);

    /**
     * 根据实体属性作为条件进行删除,查询条件使用等号
     *
     * @param record 记录
     * @return 影响行数
     */
    int delete(T record);

    /**
     * 根据主键字段进行删除,方法参数必须包含完整的主键属性
     *
     * @param key 主键
     * @return 影响行数
     */
    int deleteByPrimaryKey(Object key);

    /**
     * 根据Example条件删除数据
     *
     * @param example 条件
     * @return 影响行数
     */
    int deleteByExample(Object example);

    /**
     * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
     *
     * @param ids 如 "1,2,3,4"
     * @return 影响行数
     */
    int delete(String ids);

    /**
     * 根据主键List进行查询,类中只有存在一个带有@Id注解的字段
     *
     * @param idList 主键集合。 如 List
     * @return 查询结果
     */
     List selectByPrimaryKeyList(Collection idList);

    /**
     * 根据主键字符串进行删除,类中只有存在一个带有@Id注解的字段
     *
     * @param idList 主键集合 如 List
     * @return 影响行数 影响行数
     */
     int deleteByPrimaryKeyList(Collection idList);

    /**
     * 批量更新(属性为null不更新)
     *
     * @param recordList 记录List
     * @return 影响行数
     */
    int updateListSelective(Collection recordList);
    /**
     * 批量更新(属性为null也更新)
     *
     * @param recordList 记录List
     * @return 影响行数
     */
    int updateList(Collection recordList);

    /**
     * 根据Example条件更新实体`record`包含的全部属性,null值会被更新
     *
     * @param record  记录
     * @param example 条件
     * @return 影响行数
     */
    int updateByExample(T record, Object example);

    /**
     * 根据Example条件更新实体`record`包含的不是null的属性值
     *
     * @param record  记录
     * @param example 条件
     * @return 影响行数
     */
    int updateByExampleSelective(T record, Object example);

    /**
     * 根据Example条件更新实体`record`包含的不是null的属性值 (根据注解忽略)
     * {@link cn.com.zhengya.framework.mapper.tkMapper.annotation.SelectiveIgnore}
     *     在属性字段上加上注解,不会忽略null值
     *     - @SelectiveIgnore
     * @param record 记录
     * @param example example
     * @return 影响行数
     */
    int updateByExampleSelectiveCustom(T record, Object example);

    /**
     * 根据主键更新实体全部字段,null值会被更新
     *
     * @param record 记录
     * @return 影响行数
     */
    int updateByPrimaryKey(T record);

    /**
     * 根据主键更新属性不为null的值
     *
     * @param record 记录
     * @return 影响行数
     */
    int updateByPrimaryKeySelective(T record);
    /**
     * 根据主键更新属性不为null的值 (根据注解忽略)
     * {@link cn.com.zhengya.framework.mapper.tkMapper.annotation.SelectiveIgnore}
     *     在属性字段上加上注解,不会忽略null值
     *     - @SelectiveIgnore
     * @param record 记录
     * @return 影响行数
     */
    int updateByPrimaryKeySelectiveCustom(T record);
    /**
     * 根据实体中的属性值进行查询,查询条件使用等号
     *
     * @param record 记录
     * @return 查询结果
     */
    List select(T record);

    /**
     * 根据Example条件进行查询
     *
     * @param example 条件
     * @return 查询结果
     */
    List selectByExample(Object example);

    /**
     * 查询全部结果
     *
     * @return 查询结果
     */
    List selectAll();

    /**
     * 根据主键字符串进行查询,类中只有存在一个带有@Id注解的字段
     *
     * @param ids 如 "1,2,3,4"
     * @return 查询结果
     */
    List selectByIds(String ids);

    /**
     * 根据实体中的属性查询总数,查询条件使用等号
     *
     * @param record 记录
     * @return 查询结果
     */
    int selectCount(T record);

    /**
     * 根据Example条件进行查询总数
     *
     * @param example 条件
     * @return 查询结果
     */
    int selectCountByExample(Object example);

    /**
     * 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
     *
     * @param key 主键
     * @return 查询结果
     */
    T selectByPrimaryKey(Object key);

    /**
     * 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号
     *
     * @param record 记录
     * @return 查询结果
     */
    T selectOne(T record);

    /**
     * 根据Example条件进行查询
     *
     * @param example 条件
     * @return 查询结果
     */
    T selectOneByExample(Object example);

    /**
     * 根据属性查询
     *
     * @param propertyName 实体属性
     * @param value        v
     * @param args         参数 必须是偶数,否则忽略
     * @return 查询结果
     */
    List selectByProperties(String propertyName, Object value, Object... args);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy