๐ก ๐๐๐๐: ๐ข ๐๐ถ๐นรฃ๐ผ ๐ถ๐ป๐ท๐๐๐๐ถรง๐ฎ๐ฑ๐ผ?
Muita gente critica o ๐๐๐๐, alegando que รฉ ๐๐ฒ๐ฟ๐ฏ๐ผ๐๐ผ, ๐ฐ๐ผ๐บ๐ฝ๐น๐ถ๐ฐ๐ฎ๐ฑ๐ผ e ๐ฎ๐ป๐๐ถ๐พ๐๐ฎ๐ฑ๐ผ. Mas serรก que essa visรฃo faz justiรงa ao que realmente acontece nos bastidores? ๐คย
A API ๐๐ฎ๐๐ฎ ๐๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ ๐๐ผ๐ป๐ป๐ฒ๐ฐ๐๐ถ๐๐ถ๐๐ (๐๐๐๐) foi criada pela Sun Microsystems em 1996, liderada por James Gosling, o mesmo criador do Java. Desde entรฃo, ela tem sido a base para a comunicaรงรฃo entre aplicaรงรตes Java e bancos de dados relacionais (๐ฅ๐๐๐ ๐ฆ).
๐๐ฃ๐ผ๐ฟ ๐พ๐๐ฒ ๐ผ ๐๐๐๐ ๐ฎ๐ถ๐ป๐ฑ๐ฎ ๐ถ๐บ๐ฝ๐ผ๐ฟ๐๐ฎ?ย
JDBC fornece uma ๐ถ๐ป๐๐ฒ๐ฟ๐ณ๐ฎ๐ฐ๐ฒ unificada e independente de fornecedores para interagir com diferentes bancos de dados. Em outras palavras, ele oculta a complexidade da comunicaรงรฃo com o banco de dados e fornece um modelo padronizado para operaรงรตes de CRUD.ย
Cada banco de dados relacional (๐ ๐๐ฆ๐ค๐, ๐ฃ๐ผ๐๐๐ด๐ฟ๐ฒ๐ฆ๐ค๐, ๐ข๐ฟ๐ฎ๐ฐ๐น๐ฒ, ๐ฆ๐ค๐ ๐ฆ๐ฒ๐ฟ๐๐ฒ๐ฟ) disponibiliza um ๐ฑ๐ฟ๐ถ๐๐ฒ๐ฟ ๐๐๐๐ ๐ฒ๐๐ฝ๐ฒ๐ฐรญ๐ณ๐ถ๐ฐ๐ผ, que implementa a API de acordo com as necessidades do seu banco. Esses drivers sรฃo carregados dinamicamente pelo ๐ซ๐ข๐ท๐ข.๐ด๐ฒ๐ญ.๐๐ณ๐ช๐ท๐ฆ๐ณ๐๐ข๐ฏ๐ข๐จ๐ฆ๐ณ, que resolve automaticamente a conexรฃo com base na URL fornecida.ย
๐ ๐ฃ๐ฟ๐ถ๐ป๐ฐ๐ถ๐ฝ๐ฎ๐ถ๐ ๐ถ๐ป๐๐ฒ๐ฟ๐ณ๐ฎ๐ฐ๐ฒ๐ ๐ฑ๐ผ ๐๐๐๐:
โ๏ธ ๐๐๐ซ๐.๐จ๐ฆ๐ก.๐พ๐ค๐ฃ๐ฃ๐๐๐ฉ๐๐ค๐ฃ โ Representa uma conexรฃo ativa com o banco.ย
โ๏ธ ๐๐๐ซ๐.๐จ๐ฆ๐ก.๐๐ฉ๐๐ฉ๐๐ข๐๐ฃ๐ฉ โ Executa consultas SQL estรกticas.ย
โ๏ธ ๐๐๐ซ๐.๐จ๐ฆ๐ก.๐๐ง๐๐ฅ๐๐ง๐๐๐๐ฉ๐๐ฉ๐๐ข๐๐ฃ๐ฉ โ Executa consultas parametrizadas, prevenindo SQL Injection.ย
โ๏ธ ๐๐๐ซ๐.๐จ๐ฆ๐ก.๐๐๐จ๐ช๐ก๐ฉ๐๐๐ฉ โ Manipula os resultados das consultas SQL.ย
โ๏ธ ๐๐๐ซ๐.๐จ๐ฆ๐ก.๐ฟ๐ง๐๐ซ๐๐ง โ Interface que deve ser implementada por cada fornecedor de banco de dados para permitir a conexรฃo.ย
๐ ๐๐๐๐ ๐ฎ๐ถ๐ป๐ฑ๐ฎ รฉ ๐ฟ๐ฒ๐น๐ฒ๐๐ฎ๐ป๐๐ฒ?ย
Muitos desenvolvedores utilizam abstraรงรตes como ๐๐ถ๐ฏ๐ฒ๐ฟ๐ป๐ฎ๐๐ฒ, ๐๐ฃ๐ e Spring JDBC Template, mas o que poucas pessoas lembram รฉ que todas elas dependem do ๐๐๐๐ por baixo dos panos. Sem ele, nรฃo haveria ORM, nem frameworks de alto nรญvel para persistรชncia de dados.ย
Entรฃo, serรก que JDBC merece ser crucificado e pedrejado? Ou ele รฉ apenas subjulgado por ๐๐๐จ๐๐ฃ๐ซ๐ค๐ก๐ซ๐๐๐ค๐ง๐๐จ ๐๐ข๐๐๐๐๐ฉ๐๐จ๐ฉ๐๐จ?