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

com.gitee.qdbp.jdbc.api.JoinQueryer Maven / Gradle / Ivy

package com.gitee.qdbp.jdbc.api;

import java.util.List;
import java.util.Map;
import com.gitee.qdbp.able.exception.ServiceException;
import com.gitee.qdbp.able.jdbc.condition.DbWhere;
import com.gitee.qdbp.able.jdbc.fields.Fields;
import com.gitee.qdbp.able.jdbc.ordering.OrderPaging;
import com.gitee.qdbp.able.jdbc.ordering.Orderings;
import com.gitee.qdbp.able.jdbc.paging.PageList;
import com.gitee.qdbp.jdbc.plugins.DbPluginHelper;
import com.gitee.qdbp.jdbc.plugins.SqlDialect;
import com.gitee.qdbp.jdbc.sql.build.QuerySqlHelper;

/**
 * 基础表连接查询操作
* 这里的所有字段(DbWhere/Ordering/groupBy/fieldName), 如果存在重名则需要带表别名, 如u.userName * * @param 查询结果类型 * @author zhaohuihua * @version 190608 */ public interface JoinQueryer { /** 获取SQL方言处理类 **/ SqlDialect sqlDialect(); /** SQL生成工具 **/ QuerySqlHelper sqlHelper(); /** 获取插件容器 **/ DbPluginHelper plugins(); /** * 根据查询条件获取对象
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0 * * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @return 实体对象 */ T find(DbWhere where) throws ServiceException; /** * 根据查询条件获取对象
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0 * * @param fields 查询的字段: 全部字段传入Fields.ALL, 指定字段传入IncludeFields对象, 排除字段传入ExcludeFields对象
* 如: new IncludeFields("a.id"), 将会查询A.ID
* 如: new IncludeFields("id"), 将会查询A.ID,B.ID
* @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @return 实体对象 * @since 3.2.0 */ T find(Fields fields, DbWhere where) throws ServiceException; /** * 查找所有的实体列表, 不分页
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE A.DATA_STATE=0 * * @return 列表数据 */ List listAll() throws ServiceException; /** * 查找所有的实体列表, 不分页
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE A.DATA_STATE=0 * * @param fields 查询的字段: 全部字段传入Fields.ALL, 指定字段传入IncludeFields对象, 排除字段传入ExcludeFields对象
* 如: new IncludeFields("a.id"), 将会查询A.ID
* 如: new IncludeFields("id"), 将会查询A.ID,B.ID
* @return 列表数据 * @since 3.2.0 */ List listAll(Fields fields) throws ServiceException; /** * 查找所有的实体列表, 不分页
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param orderings 排序字段, 不需要排序时应传入Orderings.NONE * @return 列表数据 */ List listAll(Orderings orderings) throws ServiceException; /** * 查找所有的实体列表, 不分页
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param fields 查询的字段: 全部字段传入Fields.ALL, 指定字段传入IncludeFields对象, 排除字段传入ExcludeFields对象
* 如: new IncludeFields("a.id"), 将会查询A.ID
* 如: new IncludeFields("id"), 将会查询A.ID,B.ID
* @param orderings 排序字段, 不需要排序时应传入Orderings.NONE * @return 列表数据 * @since 3.2.0 */ List listAll(Fields fields, Orderings orderings) throws ServiceException; /** * 根据条件分页查询实体列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param orderings 排序字段, 不需要排序时应传入Orderings.NONE * @return 列表数据 * @since 3.2.0 */ List list(DbWhere where, Orderings orderings) throws ServiceException; /** * 根据条件分页查询实体列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param odpg 分页/排序条件, 不需要分页也不需要排序时应传入OrderPaging.NONE * @return 列表数据 */ PageList list(DbWhere where, OrderPaging odpg) throws ServiceException; /** * 根据条件分页查询实体列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param fields 查询的字段: 全部字段传入Fields.ALL, 指定字段传入IncludeFields对象, 排除字段传入ExcludeFields对象
* 如: new IncludeFields("a.id"), 将会查询A.ID
* 如: new IncludeFields("id"), 将会查询A.ID,B.ID
* @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param orderings 排序条件, 不需要排序时应传入Orderings.NONE * @return 列表数据 * @since 3.2.0 */ List list(Fields fields, DbWhere where, Orderings orderings) throws ServiceException; /** * 根据条件分页查询实体列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
* SELECT {columnNames} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param fields 查询的字段: 全部字段传入Fields.ALL, 指定字段传入IncludeFields对象, 排除字段传入ExcludeFields对象
* 如: new IncludeFields("a.id"), 将会查询A.ID
* 如: new IncludeFields("id"), 将会查询A.ID,B.ID
* @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param odpg 分页/排序条件, 不需要分页也不需要排序时应传入OrderPaging.NONE * @return 列表数据 * @since 3.2.0 */ PageList list(Fields fields, DbWhere where, OrderPaging odpg) throws ServiceException; /** * 根据条件统计实体数量
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0 * * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @return 数据数量 */ int count(DbWhere where) throws ServiceException; /** * 根据条件分组统计实体数量
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
* SELECT {groupByColumnName}, COUNT(*) FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     GROUP BY {groupByColumnName} * * @param groupBy 分组条件 * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @return 列表数据 */ Map groupCount(String groupBy, DbWhere where) throws ServiceException; /** * 根据条件查询某个字段的值
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT {columnName} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0 * * @param fieldName 指定字段名 * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param valueClazz 字段值类型 * @return 字段的值列表 */ V findFieldValue(String fieldName, DbWhere where, Class valueClazz) throws ServiceException; /** * 根据条件查询某个字段的值列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT {columnName} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param fieldName 指定字段名 * @param distinct 是否去重 * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param orderings 排序条件, 不需要排序时应传入Orderings.NONE * @param valueClazz 字段值类型 * @return 字段的值列表 * @since 3.2.0 */ List listFieldValues(String fieldName, boolean distinct, DbWhere where, Orderings orderings, Class valueClazz) throws ServiceException; /** * 根据条件查询某个字段的值列表
* 注意: 默认查询条件由entityFieldFillExecutor添加, 只查有效项
*
* SELECT {columnName} FROM {tableNameA} A
*     INNER JOIN {tableNameB} B
*     ON A.DATA_ID=B.ID AND B.DATA_STATE=0
*     WHERE {whereConditions} AND A.DATA_STATE=0
*     ORDER BY {orderByConditions} * * @param fieldName 指定字段名 * @param distinct 是否去重 * @param where 查询条件, 如果没有查询条件应传入DbWhere.NONE * @param odpg 分页/排序条件, 不需要分页也不需要排序时应传入OrderPaging.NONE * @param valueClazz 字段值类型 * @return 字段的值列表 */ PageList listFieldValues(String fieldName, boolean distinct, DbWhere where, OrderPaging odpg, Class valueClazz) throws ServiceException; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy