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

com.starmcc.qmdata.common.QmData Maven / Gradle / Ivy

There is a newer version: 2.2.1-RELEASE
Show newest version
package com.starmcc.qmdata.common;

import com.starmcc.qmdata.model.ResultInsert;

import java.util.List;

/**
 * @author qm
 * @date 2018年11月24日 上午2:16:16
 * @Description Mybatis数据持久层封装工具
 */
public interface QmData {

    /**
     * 通用查询列表
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @param clamm  对应表的实体类的Class
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity, Class clamm);

    /**
     * 通用查询列表
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity);

    /**
     * 通用查询列表
     *
     * @param clamm 对应表的实体类的Class (必须带有@Table)
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Class clamm);


    /**
     * 通用查询单条记录
     *
     * @param entity 实体类 (必须带有@Table)
     * @param clamm  实体类class对象
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity, Class clamm);

    /**
     * 通用查询单条记录
     *
     * @param entity 实体类 (必须带有@Table)
     * @param clamm  实体类class对象
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity);

    /**
     * 通用查询单条记录
     *
     * @param clamm 实体类class对象 (必须带有@Table)
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Class clamm);


    /**
     * 通用插入记录
     *
     * @param entity 对应表的实体类 (必须带有@Table和@Id)
     * @return 影响行数
     */
     int autoInsert(Q entity);

    /**
     * 通用插入记录 (返回主键)
     *
     * @param entity 对应表的实体类 (必须带有@Table和@Id)
     * @return ResultInsert 返回带新增主键id的对象
     */
     ResultInsert autoInsertGetPrimaryKey(Q entity);

    /**
     * 通用修改记录
     *
     * @param entity 对应表的实体类 (必须带有@Table和@Id)
     * @return 影响行数
     */
     int autoUpdate(Q entity);


    /**
     * 通用删除记录
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @return 影响行数
     */
     int autoDelete(Q entity);


    /**
     * 通用查询记录数
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @return 影响行数
     */
     int autoSelectCount(Q entity);

    // --------------where 重载------------------


    /**
     * 通用查询列表
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @param where  条件sql
     * @param clamm  对应表的实体类的Class
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity, String where, Class clamm);

    /**
     * 通用查询列表
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @param where  条件sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity, String where);

    /**
     * 通用查询列表
     *
     * @param clamm 对应表的实体类的Class  (必须带有@Table)
     * @param where 条件sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Class clamm, String where);


    /**
     * 通用查询单条记录
     *
     * @param entity 实体类 (必须带有@Table)
     * @param where  条件sql
     * @param clamm  实体类class对象
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity, String where, Class clamm);

    /**
     * 通用查询单条记录
     *
     * @param entity 实体类 (必须带有@Table)
     * @param where  条件sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity, String where);

    /**
     * 通用查询单条记录
     *
     * @param clamm 实体类class对象  (必须带有@Table)
     * @param where 条件sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Class clamm, String where);


    /**
     * 通用修改记录
     *
     * @param entity 对应表的实体类 (必须带有@Table和@Id)
     * @param where  条件sql
     * @return 影响行数
     */
     int autoUpdate(Q entity, String where);


    /**
     * 通用删除记录
     *
     * @param entity 对应表的实体类 (必须带有@Table)
     * @param where  条件sql
     * @return 影响行数
     */
     int autoDelete(Q entity, String where);


    /**
     * 通用查询记录数
     *
     * @param entity   对应表的实体类 (必须带有@Table)
     * @param whereSql 条件sql
     * @param 
     * @return 影响行数
     */
     int autoSelectCount(Q entity, String whereSql);

    // -------------where orderby 重载 --------------------

    /**
     * 通用查询列表
     *
     * @param entity  对应表的实体类 (必须带有@Table)
     * @param where   条件sql
     * @param orderBy 排序sql
     * @param clamm   对应表的实体类的Class
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity, String where, String orderBy, Class clamm);


    /**
     * 通用查询列表
     *
     * @param entity  对应表的实体类 (必须带有@Table)
     * @param where   条件sql
     * @param orderBy 排序sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     List autoSelectList(Q entity, String where, String orderBy);


    /**
     * 通用查询单条记录
     *
     * @param entity  实体类 (必须带有@Table)
     * @param where   条件sql
     * @param orderBy 排序sql
     * @param clamm   实体类class对象
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity, String where, String orderBy, Class clamm);

    /**
     * 通用查询单条记录
     *
     * @param entity  实体类 (必须带有@Table)
     * @param where   条件sql
     * @param orderBy 排序sql
     * @return 根据参数指定的类型进行嵌套数据
     */
     Q autoSelectOne(Q entity, String where, String orderBy);


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy