Introdução
Você parou para refletir onde e como são armazenados os terabytes de dados que são trafegados pelas aplicações disponíveis nas plataformas desktop, web e atualmente mobile?
Bem todo este gigantesco volume de dados é armazenado no que conhecemos um provedor de banco de dados. Mas como um software desenvolvido na linguagem Java consegue interagir com este serviço de gerenciamento dos dados de um sistema? Antes precisamos listar algumas alternativas disponíveis atualmente para esta única proposta.
- JDBC
- ORM
- NoSQL
Para começar, daremos ênfase na alternativa JDBC explorando os recursos disponíveis para manipulação dos dados de uma aplicação desenvolvida em Java.
Java Database Connectivity ou JDBC é um conjunto de classes e interfaces escritas em Java que fazem o envio de instruções SQL para qualquer banco de dados relacional.
Não queira dominar JDBC sem antes obter conceitos fundamentais sobre SQL, para a sua sorte, exploramos SQL recentemente e disponibilizamos no conteúdo deste link.
Em Java tudo é parte da constituição de classes e interfaces, para realizar uma integração com banco de dados não seria diferente. Abaixo segue uma tabela com as interfaces mais relevantes para a manipulação de dados utilizando JDBC.
Nome | Descrição |
---|---|
java.sql.DriverManager | Classe responsável por gerenciar o driver de conexão de acordo com o banco de dados |
java.sql.Connection | Interface que representará a conexão criada pelo gerenciador de conexões |
java.sql.Statement | Interface que representará um procedimento SQL (insert, update, delete, select) que será executado |
java.sql.PreparedStatement | Interface com a mesma finalidade que a Statement que permite mencionar parâmetros, evitando o famoso SQL Inject |
java.sql.ResultSet | Interface que representará uma resposta em forma de cursor que representa a matriz de dados conforme estrutura dos SELECTS |
É importante pensar em realizar a conexão antes mesmo de pensar em realizar operações SQL afetando de alguma forma o banco de dados.Para isso, defina seu banco de dados, importe o
.jar
correspondente e realize o processo de configuração.Recomendamos utilizar um projeto maven para a proposta de criar um sistema que conecta a algum banco e dados.Depois do projeto criado, precisaremos inicialmente criar a conexão ao banco de dados utilizando a classe java.sql.DriverManager
.
import java.sql.Connection;
import java.sql.DriverManager;
public class FabricaConexao {
/**
Definimos uma variável estática para evitar
a criar uma conexão a cada execução
*/
private static Connection conexao;
/**
Este método devera ser chamado somente na inicialização do seu sistema
através da sua classe principal (main)
*/
public static void criarConexao(){
try{
//ao tentar conectar você poderá receber alguns erros
//confira se adicionar a dependencia e informações do seu banco de dados
String driver = "org.postgresql.Driver";
String url = "jdbc:postgresql://HOST/DATABASE"; //-> exemplo: jdbc:postgresql://localhost:5432/sample
String username = "USERNAME"; // -> postgres
String password = "PASSWORD"; // -> postgres
Class.forName(driver).newInstance();
conexao = DriverManager.getConnection(url, username, password);
}catch (Exception exception){
exception.printStackTrace();
}
}
public static Connection getConexao(){
//quando chamar o método a mesma conexão sempre será retomada
return conexao;
}
}