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.
Ciclo de Funcionamento
Section titled “Ciclo de Funcionamento”-
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.
-
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. -
Execução do Comando
Executa a consulta (
SELECT) ou comando de manipulação (INSERT,UPDATE,DELETE,PROCEDURE) no banco de dados relacional. -
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.
-
-
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 de Configuração JSON da Etapa
Section titled “Exemplo de Configuração JSON da Etapa”Exemplo da estrutura das chaves bdot:* geradas pelo Editor Visual para este runner:
{ "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}