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

com.anji.plus.gaea.archiver.sqlbuilder.ISQLBuilder Maven / Gradle / Ivy

package com.anji.plus.gaea.archiver.sqlbuilder;

import com.anji.plus.gaea.archiver.config.ArchiverTable;

import java.util.Date;
/**
 * SQL语句构建类接口定义
 *
 * @author 木子李·De
 * @since 2021/2/3 14:16
 */
public interface ISQLBuilder {

    /** 判断表名是否存在
     * @param tableName
     * @return
     */
    String existTable(String tableName);

    /** 判断表中列名是否存在
     * @param tableName
     * @param fieldName
     * @return
     */
    String existTableField(String tableName, String fieldName);

    /** 获取数据库当前时间
     * @return
     */
    String getNow();

    /** 统计有多少条数据要归档
     * @param sourceTableName
     * @return
     */
    String countRows(String sourceTableName);

    /** 查询本次归档的任务,跨了哪几个月份
     * @param tablename
     * @param timefield
     * @param maxDaysBeforeArchive
     * @return
     */
    String getCrossMonthList(String tablename, String timefield, Integer maxDaysBeforeArchive);

    /**创建归档表
     * @param archiveTableName
     * @param sourceTableName
     * @return sql
     */
    String createArchiverTableIfNotExist(String archiveTableName, String sourceTableName);

    /**执行归档
     * @param sourceTableName
     * @param startTime
     * @param endTime
     * @return
     */
    String doArchiver(String sourceTableName, Date startTime, Date endTime);

    /**
     * 扫描以表名为前缀的所有归档表
     * @param sourceTableName
     * @return
     */
    String scanArchive(String sourceTableName, String dbName);

    /**
     * 执行dump命令
     * @param archiverTable
     * @return
     */
    String executeDump(ArchiverTable archiverTable);

    /**
     * drop 表
     * @param archiverTable
     * @return
     */
    String dropTable(ArchiverTable archiverTable);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy