/
v.6.0 - Robô para conexão com banco de dados

1. Visão geral

O propósito desta página é exemplificar a codificação de um robô simples que realiza conexão com o banco de dados. Para tal utilizaremos a biblioteca DBUtils, que é disponibilizada pelo time de Produto e Tecnologia e importada por meio da dependência robot-parent. Para uma compreensão mais abrangente sobre a estrutura de um projeto de robôs, é recomendada a leitura prévia da página Estrutura básica de um robô.

2. Abrindo a conexão com DBUtils

Para estabelecer a conexão com o banco de dados, utilizaremos o método estático getConnection da biblioteca DBUtils. Este método requer um parâmetro do tipo String contendo o nome do banco de dados.

1@Component 2@RobotModule("Radarroboenviaemail") 3@Version({ 1, 0, 0 }) 4public class Radarroboconexaobanco { 5 6 private static final Logger LOGGER = LoggerFactory.getLogger(Radarroboconexaobanco.class); 7 private static final String DB_NAME = "dbTesteRadar"; 8 9 @Execution 10 public void execute() { 11 try (Connection connection = DBUtils.getConnection(DB_NAME);) { 12 13 } catch (SQLException e) { 14 LOGGER.error("Erro ao realizar conexão com o banco de dados", e); 15 } 16 }

A abertura de uma conexão em Java pode resultar em uma exceção do tipo SQLException caso ocorra alguma falha. Portanto, capturamos essa exceção e a registramos como um log de erro.

3. Utilizando a conexão

Além da conexão, também precisamos abrir um objeto do tipo PreparedStatement e um objeto do tipo ResultSet para utilizar a conexão estabelecida. De forma estática, declaramos um objeto do tipo String que contém a instrução SQL que desejamos executar no banco de dados.

1@Component 2@RobotModule("Radarroboenviaemail") 3@Version({ 1, 0, 0 }) 4public class Radarroboconexaobanco { 5 6 private static final Logger LOGGER = LoggerFactory.getLogger(Radarroboconexaobanco.class); 7 private static final String DB_NAME = "dbTesteRadar"; 8 private static final String SQL_SELECT_QUERY = "select usuario from tabela"; 9 10 @Execution 11 public void execute() { 12 try (Connection connection = DBUtils.getConnection(DB_NAME); 13 PreparedStatement preparedStatement = connection.prepareStatement(SQL_SELECT_QUERY); 14 ResultSet resultSet = preparedStatement.executeQuery();) { 15 while (resultSet.next()) { 16 LOGGER.info("Select encontrou o usuário: {}", resultSet.getString("usuario")); 17 } 18 } catch (SQLException e) { 19 LOGGER.error("Erro ao realizar conexão com o banco de dados", e); 20 } 21 } 22 23}

4. Conclusão

Demonstramos de forma simples como criar um robô que abre uma conexão com banco de dados e executa uma instrução de select, utilizando uma biblioteca disponibilizada pelo nosso time de Produto e Tecnologia. Embora seja um exemplo básico, essa base possibilita entender o funcionamento da nossa biblioteca de envio de e-mails, permitindo sua implementação em diversas customizações.

O código completo deste exemplo está disponível em http://git.lecom.com.br/vinicius.henrique/RadarRoboConexaoBanco.