import club.kingon.sql.builder.SqlBuilder; import club.kingon.sql.builder.entry.Alias; import cn.hutool.core.util.StrUtil; import cn.hutool.db.sql.SqlFormatter; import static com.eshore.odcp.hudi.connector.Constants.DATABASE_NAME; /** * @author lanyuanxiaoyao * @date 2023-06-07 */ public class SqlBuilderTests { private static final String COUNT = "count(*)"; private static final Alias TABLE_VERSION = Alias.of(StrUtil.format("{}.tb_app_collect_table_version", DATABASE_NAME), "tactv"); private static final String TABLE_VERSION_FLINK_JOB_ID = column(TABLE_VERSION, "flink_job_id"); private static final String TABLE_VERSION_ALIAS = column(TABLE_VERSION, "alias"); private static final String TABLE_VERSION_VERSION = column(TABLE_VERSION, "version"); private static final String TABLE_VERSION_SCHEDULED = column(TABLE_VERSION, "scheduled"); private static final Alias TABLE_INFO = Alias.of(StrUtil.format("{}.tb_app_collect_table_info", DATABASE_NAME), "tacti"); private static final String TABLE_INFO_FLINK_JOB_ID = column(TABLE_INFO, "flink_job_id"); private static final String TABLE_INFO_ALIAS = column(TABLE_INFO, "alias"); private static final String TABLE_INFO_PRIORITY = column(TABLE_INFO, "priority"); private static final String TABLE_INFO_STATUS = column(TABLE_INFO, "status"); private static final Alias TABLE_SYNC_STATE = Alias.of(StrUtil.format("{}.tb_app_hudi_sync_state", DATABASE_NAME), "tahss"); private static final String TABLE_SYNC_STATE_ID = column(TABLE_SYNC_STATE, "id"); private static String column(Alias table, String column) { return StrUtil.format("{}.{}", table.getAlias(), column); } public static void main(String[] args) { System.out.println(SqlFormatter.format( SqlBuilder.select("count(distinct concat(src_schema, src_table))") .from(TABLE_INFO) .whereGe(TABLE_INFO_PRIORITY, 10000) .andEq(TABLE_INFO_STATUS, "y") .build() )); } }