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

com.panosen.orm.clickhouse.DalClientExtension Maven / Gradle / Ivy

package com.panosen.orm.clickhouse;

import com.panosen.codedom.clickhouse.Parameter;
import com.panosen.codedom.clickhouse.Parameters;
import com.panosen.codedom.clickhouse.builder.SelectSqlBuilder;
import com.panosen.codedom.clickhouse.engine.GenerationResponse;
import com.panosen.codedom.clickhouse.engine.SelectSqlEngine;
import com.panosen.orm.clickhouse.extractor.EntityExtractor;
import com.panosen.orm.clickhouse.extractor.EntityListExtractor;
import com.panosen.orm.clickhouse.mapper.Mapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

public class DalClientExtension {

    private final static Logger logger = LoggerFactory.getLogger(DalClientExtension.class);

    public static  List selectList(DalClient dalClient, SelectSqlBuilder selectSqlBuilder, Mapper mapper) throws Exception {
        GenerationResponse generationResponse = new SelectSqlEngine().generate(selectSqlBuilder);
        String sql = generationResponse.getSql();
        logger.info("sql = " + sql);

        Parameters parameters = generationResponse.getParameters();
        logger.info("parameters.size() = " + parameters.size());
        for (Parameter parameter : parameters) {
            logger.info(parameter.getValue().toString());
        }

        final EntityListExtractor extractor = new EntityListExtractor<>(mapper);

        return dalClient.query(sql, parameters, extractor);
    }

    public static   TEntity selectSingle(DalClient dalClient, SelectSqlBuilder selectSqlBuilder, Mapper mapper) throws Exception {
        GenerationResponse generationResponse = new SelectSqlEngine().generate(selectSqlBuilder);
        String sql = generationResponse.getSql();
        logger.info("sql = " + sql);

        Parameters parameters = generationResponse.getParameters();
        logger.info("parameters.size() = " + parameters.size());
        for (Parameter parameter : parameters) {
            logger.info(parameter.getValue().toString());
        }

        final EntityExtractor extractor = new EntityExtractor<>(mapper);

        return dalClient.query(sql, parameters, extractor);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy