Introdução ao JDBC
- #Java
Requisitos Básicos: Conhecimento básico de SQL e JAVA.
JDBC significa (Java database connectivity) . é uma API do Java para comunicação com banco de dados.
A API do JDBC oferece uma interface para interagir com qualquer SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS RELACIONAL.
A API do JDBC é composta pelos 4 componentes:
- JDBC Driver
- Connection
- Statement
- ResultSet
JDBC Driver:
JDBC Driver é um conjunto de classes Java que implementam interfaces JDBC para interagir com um banco de dados específico
Quase todos os bancos de dados oferecem um driver JDBC. Por exemplo , MySQL oferece o Driver MySQL connector/J.
Em outras palavras, cada fornecedor de banco de dados é responsável pela sua implementação do JDBC Driver.
JDBC Driver é escrito em Java. Ele traduz as chamadas no JDBC para chamadas específicas do MySQL e manda estas chamadas para um banco de dados específico. Ou seja, Traduz código java que nós entendemos, para algo que o banco de dados entende.
Modo de uso:
Para usar o Drivar JDBC incluimos um arquivo JAR na aplicação. Em caso de projetos Gradle/Maven, opicionalmente declara-se a dependência.
dependencies {
implementation 'mysql:mysql-connector-java:8.0.33'
}
CONNECTION:
O principal, mais importante componente, a estrela do JDBC é o objeto Connection!
Numa aplicação Java você primeiro carrega um driver JDBC e então estabelece uma conexão com o banco de dados.
Por meio do objeto Connection você pode interagir com o banco de dados instanciando um Statement para executar comandos SQL em uma tabela.
Vocẽ pode abrir mais de uma conexão com o banco de dados ao mesmo tempo.
STATEMENT
para executar uma query SQL, SELECT, INSERT, UPDATE e DELETE, por exemplo, você usa um objeto STATEMENT. Você usa sua instância (objeto) CONNECTION para instanciar um objeto Statement
O JDBC disponibiliza vários tipos de statemente, como os PreparedStatement e o CallableStatement por exemplo.
Talvez o mais comum em aplicações java, Os PreparedStatment, são instruções SQL (pré-compiladas) que aceitam parâmetros (as variáveis).
Como exemplo
String instrucaoSql = "SELECT * FROM users WHERE email = ? AND password = ?";
PreparedStatement ps = conn.prepareStatement(instrucaoSql);
ps.setString(1, "meuEmail@exemplo.com");
ps.setString(2, "senha123");
ResultSet rs = ps.executeQuery();
O intuito do PreparedStatment é evitar escrever instruções SQL com concatenação de Strings mantendo o código mais bonito e seguro. Também ajuda a prevenir ataques de injeção de SQL (SQL Injection) e torna o código mais reutilizável.
RESULTSET
Depois de fazer a requisição ao banco de dados, você recebe um obejeto ResulteSet.
Este objeto oferece uma série de APIs que permitem iterar (traverse) o resultado da query.
Baseei-me neste artigo, O site é muito bom e aborda vários temas acerca de mySql: https://www.mysqltutorial.org/mysql-jdbc-tutorial/jdbc-overview/
veja também: https://en.wikipedia.org/wiki/JDBC_driver