Mas como acessamos informações de um banco de dados em Java?
A API básica do Java vem com meios de acesso a banco de dados, a JDBC. Nela, você cria conexões com o banco, envia comandos e lê o resultado manualmente e a parte de acesso ao banco de dados (como o protocolo usado) é abstraída através de um driver JDBC. Veja um tutorial sobre esse assunto aqui e para mais informações veja o tutorial oficial na página da Oracle.O JDBC é a ponte entre uma aplicação Java e um banco de dados |
Claro que essa abordagem não é nada prática, veja os problemas imediatos que temos com ela:
- Mal gerenciamento das conexões de banco de dados por parte do programador. Conexões devem ser fechadas manualmente, quando não fechadas, temos problemas com relação a mal uso de recursos;
- Muita linguagem de banco de dados no código Java, pois temos que enviar comandos manualmente para o banco e ler o resultado;
- Código repetido nas interações com o banco;
- Segurança, pois comandos manuais podem dar brecha para SQL Injection.
Esses são só alguns dos problemas conhecidos. Agora vamos falar de coisa boa, vamos falar de tecpix, vamos falar como o JPA nos ajuda com muitos desses problemas.
Objetos não são tabelas de banco de dados, e agora?
Se só tivessemos que conectar ao banco de dados, tudo estaria OK. Mas Java é uma linguagem orientada a objetos. Representamos as coisas da vida real com classes Java. Se nossa aplicação tem que gerenciar produtos de um estoque, com certeza teremos uma classe que representa o Produto e iremos usar as APIs Java para manipular o mesmo. E quando usamos um banco de dados não poderia ser diferente. Eu não quero selecionar colunas do BD, quero selecionar objetos que estejam em uma lista Java.
Com a abordagem anterior teríamos que codificar a extração dos dados do banco e em seguida corresponder as colunas do banco em instâncias de um objeto Java manualmente...
Bem, atualmente isso não é um problema. com JPA, pois ela suporta relacionamento entre objetos e tabelas(ORM) usando anotações Java.
Com JPA, o desenvolvedor para de se importar com banco de dados enquanto codificando e tem um foco maior no problema que ele quer resolver com a ferramenta Java. Outras coisas como transações e gerenciamento de conexões com o banco de dados, podem ter seu gerenciamento delegados ao servidor de aplicação. Lembrando que JPA está no topo do JBDC, mas, conforme já mencionado, seu uso é muito facilitado por certos aspectos serem delegados ao servidor de aplicação, como gerenciamento de conexões através de um "pool" e instalação do driver do banco de dados proprietário no servidor, não na aplicação.
No próximo artigo iremos abordar uma introdução prática à JPA. Não percam!
No próximo artigo iremos abordar uma introdução prática à JPA. Não percam!
Aguardando o próximo!!!
ResponderExcluir