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.
@Component
@RobotModule("Radarroboenviaemail")
@Version({ 1, 0, 0 })
public class Radarroboconexaobanco {
private static final Logger LOGGER = LoggerFactory.getLogger(Radarroboconexaobanco.class);
private static final String DB_NAME = "dbTesteRadar";
@Execution
public void execute() {
try (Connection connection = DBUtils.getConnection(DB_NAME);) {
} catch (SQLException e) {
LOGGER.error("Erro ao realizar conexão com o banco de dados", e);
}
}
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.
@Component
@RobotModule("Radarroboenviaemail")
@Version({ 1, 0, 0 })
public class Radarroboconexaobanco {
private static final Logger LOGGER = LoggerFactory.getLogger(Radarroboconexaobanco.class);
private static final String DB_NAME = "dbTesteRadar";
private static final String SQL_SELECT_QUERY = "select usuario from tabela";
@Execution
public void execute() {
try (Connection connection = DBUtils.getConnection(DB_NAME);
PreparedStatement preparedStatement = connection.prepareStatement(SQL_SELECT_QUERY);
ResultSet resultSet = preparedStatement.executeQuery();) {
while (resultSet.next()) {
LOGGER.info("Select encontrou o usuário: {}", resultSet.getString("usuario"));
}
} catch (SQLException e) {
LOGGER.error("Erro ao realizar conexão com o banco de dados", e);
}
}
}
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.