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

net.n2oapp.framework.engine.sql.SqlInvocationEngine Maven / Gradle / Ivy

There is a newer version: 7.4.18
Show newest version
package net.n2oapp.framework.engine.sql;

import net.n2oapp.framework.api.metadata.global.dao.invocation.model.N2oSqlQuery;
import net.n2oapp.routing.datasource.JndiRoutingDataSourceTemplate;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static net.n2oapp.framework.engine.sql.InvocationUtil.mapAndListsToJson;

/**
 * Выполнение sql действия. На вход приходит map аргументов, на выход отправляется результат выполненения действия.
 * Это может быть один объект или список.
 */
@Deprecated
public class SqlInvocationEngine extends JdbcInvocationEngine {

    public SqlInvocationEngine(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
        super(namedParameterJdbcTemplate);
    }

    public SqlInvocationEngine(NamedParameterJdbcTemplate namedParameterJdbcTemplate,
                               JndiRoutingDataSourceTemplate jndiRoutingDataSourceTemplate) {
        super(namedParameterJdbcTemplate, jndiRoutingDataSourceTemplate);
    }

    @Override
    protected List getQueries(N2oSqlQuery invocation) {
        return Arrays.asList(invocation.getQuery().split(";"));
    }

    @Override
    public Class getType() {
        return N2oSqlQuery.class;
    }


    @Override
    public Object invoke(N2oSqlQuery invocation, Object data) {
        Map args = new HashMap<>((Map)data);
        mapAndListsToJson(args);
        final List queries = getQueries(invocation);
        final String jndiName = invocation.getDataSource();
        return execute(jndiName, queries, args);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy