Skip to content

Datasource JDBC

O runner de Datasource JDBC (DATASOURCE_JDBC) é o plugin responsável por executar comandos SQL em bancos de dados relacionais (como PostgreSQL, Oracle, SQL Server, MySQL, MariaDB, DB2, entre outros).

Ele encapsula a abertura e devolução de conexões a partir do pool gerenciado da instância selecionada, realiza a interpolação dinâmica de parâmetros na instrução SQL e retorna o resultado da consulta em um formato JSON estruturado, pronto para ser consumido nas etapas seguintes do fluxo.


  1. Resolução da Instância

    O runner obtém a instância de conexão JDBC configurada para a etapa, garantindo o reuso do pool de conexões ativas.

  2. Interpolação de Parâmetros

    A instrução SQL definida na etapa passa pelo motor de substituição, onde as marcações ${...} são substituídas pelos valores reais presentes na memória da sessão.

  3. Execução do Comando

    Executa a consulta (SELECT) ou comando de manipulação (INSERT, UPDATE, DELETE, PROCEDURE) no banco de dados relacional.

  4. Mapeamento de Retorno

    • Consultas (SELECT): Converte o ResultSet retornado em um array de documentos JSON e armazena o resultado no histórico da etapa (historico.alias.body).

    • Comandos de Alteração: Retorna a quantidade de linhas afetadas ou os identificadores gerados.

  5. Tratamento de Exceções

    Falhas de conexão, restrições de chave (constraints) ou erros de sintaxe SQL capturados interrompem a sessão e geram o container de erro correspondente.


Parâmetros e Formulário de Configuração

Section titled “Parâmetros e Formulário de Configuração”

Os parâmetros deste runner são configurados no Editor Visual e serializados na definição da etapa:

Campo no Formulário / Atributo JSON Tipo Obrigatório Descrição
bdot:instancia String Sim Nome ou identificador da instância de conexão JDBC previamente cadastrada no ambiente.
bdot:sql String Sim Instrução SQL a ser executada no banco de dados. Suporta interpolação de variáveis e parâmetros da sessão (ex: SELECT * FROM clientes WHERE cpf = '${entrada.body.cpf}').
bdot:tipoOperacao String Não Define o tipo de instrução para otimização da execução (SELECT, EXECUTE_UPDATE, CALL_PROCEDURE).
bdot:timeout Integer Não Tempo máximo limite para a execução do comando no banco de dados em milissegundos.

Exemplo da estrutura das chaves bdot:* geradas pelo Editor Visual para este runner:

definicao.json
{
"bdot:instancia": "jdbc_banco_clientes_prod",
"bdot:sql": "SELECT id, nome, status, data_cadastro FROM tb_clientes WHERE id_empresa = ${dados.empresaId} AND status = '${entrada.queryParams.status}'",
"bdot:tipoOperacao": "SELECT",
"bdot:timeout": 3000
}