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

org.rdlinux.ezmybatis.service.EzService Maven / Gradle / Ivy

package org.rdlinux.ezmybatis.service;

import org.rdlinux.ezmybatis.core.EzQuery;
import org.rdlinux.ezmybatis.core.sqlstruct.table.Table;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * 基础service
 *
 * @param  实体类型
 * @param  主键类型
 */
public interface EzService {
    /**
     * 根据条件查询数据
     *
     * @param param 查询参数
     */
    List query(EzQuery param);

    /**
     * 根据条件查询总数
     *
     * @param param 查询参数
     */
    int queryCount(EzQuery param);

    /**
     * 根据id查询
     *
     * @param id 主键
     */
    MdType getById(PkType id);

    /**
     * 根据id查询
     *
     * @param table 指定表
     * @param id    主键
     */
    MdType getById(Table table, PkType id);

    /**
     * 根据多个id查询
     *
     * @param ids 主键集合
     */
    List getByIds(Collection ids);

    /**
     * 根据多个id查询
     *
     * @param table 指定表
     * @param ids   主键集合
     */
    List getByIds(Table table, Collection ids);

    /**
     * 根据实体属性查询
     *
     * @param field 实体属性
     * @param value 属性值
     */
    List getByField(String field, Object value);

    /**
     * 根据实体属性查询
     *
     * @param table 指定表
     * @param field 实体属性
     * @param value 属性值
     */
    List getByField(Table table, String field, Object value);

    /**
     * 根据实体属性查询一条记录
     *
     * @param field 实体属性
     * @param value 属性值
     */
    MdType getOneByField(String field, Object value);

    /**
     * 根据实体属性查询一条记录
     *
     * @param table 指定表
     * @param field 实体属性
     * @param value 属性值
     */
    MdType getOneByField(Table table, String field, Object value);

    /**
     * 根据列明查询
     *
     * @param column 表列
     * @param value  列值
     */
    List getByColumn(String column, Object value);

    /**
     * 根据列明查询
     *
     * @param table  指定表
     * @param column 表列
     * @param value  列值
     */
    List getByColumn(Table table, String column, Object value);

    /**
     * 根据列明查询一条记录
     *
     * @param column 表列
     * @param value  列值
     */
    MdType getOneByColumn(String column, Object value);

    /**
     * 根据列明查询一条记录
     *
     * @param column 表列
     * @param value  列值
     */
    MdType getOneByColumn(Table table, String column, Object value);

    /**
     * 更新, 只会更新非空字段
     */
    int update(MdType model);

    /**
     * 更新, 只会更新非空字段
     */
    int update(Table table, MdType model);

    /**
     * 批量更新, 只会更新非空字段
     */
    int batchUpdate(Collection models);

    /**
     * 批量更新, 只会更新非空字段
     */
    int batchUpdate(Table table, Collection models);

    /**
     * 替换, 更新全部字段
     */
    int replace(MdType model);

    /**
     * 替换, 更新全部字段
     */
    int replace(Table table, MdType model);

    /**
     * 批量替换, 更新全部字段
     */
    int batchReplace(Collection models);

    /**
     * 批量替换, 更新全部字段
     */
    int batchReplace(Table table, Collection models);

    /**
     * 根据id删除
     */
    int deleteById(PkType id);

    /**
     * 根据id删除
     */
    int deleteById(Table table, PkType id);

    /**
     * 根据id批量删除
     */
    int deleteByIds(Collection ids);

    /**
     * 根据id批量删除
     */
    int deleteByIds(Table table, Collection ids);

    /**
     * 根据属性删除
     *
     * @param field 实体属性
     * @param value 属性值
     */
    int deleteByField(String field, Object value);

    /**
     * 根据属性删除
     *
     * @param field 实体属性
     * @param value 属性值
     */
    int deleteByField(Table table, String field, Object value);

    /**
     * 根据列删除
     *
     * @param column 表列
     * @param value  列值
     */
    int deleteByColumn(String column, Object value);

    /**
     * 根据列删除
     *
     * @param column 表列
     * @param value  列值
     */
    int deleteByColumn(Table table, String column, Object value);

    /**
     * 删除
     *
     * @param model 要删除的实体
     */
    int delete(MdType model);

    /**
     * 删除
     *
     * @param model 要删除的实体
     */
    int delete(Table table, MdType model);

    /**
     * 批量删除
     *
     * @param models 要删除的实体集合
     */
    int batchDelete(Collection models);

    /**
     * 批量删除
     *
     * @param models 要删除的实体集合
     */
    int batchDelete(Table table, Collection models);

    /**
     * 保存
     *
     * @param model 要保存的实体
     */
    int save(MdType model);

    /**
     * 保存
     *
     * @param model 要保存的实体
     */
    int save(Table table, MdType model);

    /**
     * 批量保存
     *
     * @param models 要保存的实体集合
     */
    int batchSave(Collection models);

    /**
     * 批量保存
     *
     * @param models 要保存的实体集合
     */
    int batchSave(Table table, Collection models);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy