Buscar

Programação II - Java: Conexão com Banco de Dados (JDBC)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Programação II
Banco de Dados JDBC
JDBC
• O que é JDBC?
• Java DataBase Connectivity
• Conjunto de classes e interfaces (API – Application Programming Interface) 
escritas na Linguagem Java que realiza o envio de cláusulas SQL para qualquer
banco de dados relacional
• Desde que o banco de dados possua um Driver JDBC
• O JDBC é uma API de baixo nível e base para APIs de alto nível
• Amplia a funcionalidade do Java
• Possibilita o uso de bancos de dados já instalados
JDBC
• De maneira simplificada o JDBC executa as seguintes operações:
• Estabelece conexão com o banco de dados
• Executa consultas (ou atualizações)
• Recebe o conjunto de resultados das consultas
• Executa procedures/functions
• Obtém informações sobre o esquema do banco de dados, como tabelas, 
índices, visões e procedures
• Executa transações 
JDBC
JDBC
• Banco de Dados
• MySql
• Download MySql Installer
• https://dev.mysql.com/downloads/installer/
• Download MySql Workbench
• https://dev.mysql.com/downloads/workbench/
• Download JDBC Driver (Connector)
• https://dev.mysql.com/downloads/connector/j/
JDBC
• Abrindo Conexão com MySql
• DriverManager
• A classe DriverManager é a responsável por gerenciar o processo de comunicação
com os drivers do banco de dados.
• Abrindo Conexão
• É necessário invovar o método getConnection()
✓ Método static da classe DriverManager
✓ Retorna uma conexão (Connection)
✓ String de conexão do JDBC (jdbc:mysql://IP/DATABASE )
✓ Login e senha do banco de dados
DriverManager.getConnection(“jdbc:mysql://localhost[porta]/DATABASE ”)
JDBC
• Observação sobre o DriverManager
• Para usar a classe DriverManager é necessário importar o Driver JDBC no 
projeto
JDBC
• Criando a Classe ConnectionFactory
public class ConnectionFactory {
public Connection getConnection(){
String url = "jdbc:mysql://localhost:3306/database";
try {
return DriverManager.getConnection(url,“login", “senha");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
Essa linha de código está embrulhando e relançando a SQLException
como uma RuntimeException
✓ Vantagem: Diminuição do acoplamento com a API do JDBC
Class.forName("com.mysql.jdbc.Driver")
JDBC
• URLs JDBC para outros Banco de dados
• Sql Server: jdbc:sqlserver://IP/DATABASE 
• Download Driver JDBC
• https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774
• PostgreSQL: jdbc:postgresql://IP/DATABASE 
• Download Driver JDBC
• https://jdbc.postgresql.org/download/postgresql-42.1.1.jar
• Oracle 11g: jdbc:oracle://IP/DATABASE 
• Download Driver JDBC
• http://www.oracle.com/technetwork/apps-tech/jdbc-112010-090769.html
JDBC
• Padrões de Projeto
• Factory Method
• Muitas vezes queremos controlar o processo de criação de um objeto que 
pode ser repetido diversas vezes em nosso código, como o de abrir uma 
conexão. O que aconteceria se esse código estivesse espalhado por nossa 
aplicação e alguma informação mudasse? 
• Ex. Uma troca de login, por exemplo, faria você mudar diversas partes do seu 
código. 
JDBC
• Testando a Conexão com o Banco de Dados
public static void main(String[] args) {
Connection conn = new ConnectionFactory().getConnection();
System.out.println("Conexao aberta!");
conn.close();
}
JDBC
• Realizando Operações no Banco de Dados
• Inserir
• Remover
• Listar todos os produtos
• Consultar por atributo
• Atualizar
JDBC
• Interfaces JDBC que irão ajudar nas operações
Interface Descrição
Connection Representa a conexão com o banco
especificado. Dentro do contexto da
conexão, cláusulas SQL são executadas e
os resultados são devolvidos
PreparedStatement Usados para executar cláusulas SQL que
se repetem várias vezes de maneira
eficiente e executar consultas
parametrizadas. Instâncias de
PreparedStatement contêm cláusulas SQL
já compiladas.
ResultSet Usado para acessar os dados retornados
pelas cláusulas SQL executadas.
JDBC
• Os métodos que irám executar as operações com o banco de dados 
serão criados em uma classe DAO (Data Access Object).
• Data Access Object (DAO).
• É um padrão de desenvolvimento de Software
• Objeto que prove uma interface abstrata para algum tipo de banco de dados 
ou mecanismo de persistência.
• Mapeia chamadas de aplicação para a camada de persistência sem expor
detalhes do banco de dados.
• Separação de responsabilidades
• Necesssidades da aplicação vs Recursos do BD para atender as necessidades
JDBC
• Data Access Object (DAO). (continuação…)
• O DAO pode ser pensado como um Mapeador entre objetos da aplicação e a 
camada de persistência física.
• É tradicionalmente associado a linguagem de programação Java
JDBC
• Data Access Object (DAO). (continuação…)
• Vantagens
• Reuso do Código
• Abstração
• Melhor Manutenabilidade
• Desvantagens
• Por ser uma camada a mais (Um objeto a mais instanciado)
• Memória
• Tempo de Processamento
JDBC
• Criando a Interface do DAO
public interface InterfaceNomeDAO {
public void adicionar (Object o);
public void remover(Object o);
public ArrayList<Object> listar();
public void alterar(Object o);
}
JDBC
• Criando a classe que irá implementar a Interface Dao
public class NomeClasseDAO implements InterfaceNomeDAO{
//Todos os métodos que irão operar com o banco de dados
}
JDBC
• Para exemplificar,
• Vamos criar uma classe Pessoa
public class Pessoa(){
private String nome;
private long cpf;
public Pessoa(){
}
public Pessoa(String nome, long cpf){
this.nome = nome;
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public long getCpf() {
return cpf;
}
public void setCpf(long cpf) {
this.cpf = cpf;
}
}
JDBC public void adiciona (Pessoa p){
Connection conn = new ConnectionFactory().getConnection();
try{
PreparedStatement ps = conn.prepareStatement
("insert into nomeTabela (nome, cpf) values (?,?)");
ps.setString(1, p.getNome());
ps.setLong(2, p.getLong());
ps.execute();
ps.close();
}catch (SQLException e) {
throw new RuntimeException(e);
}finally{
try{
conn.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
✓ Método Inserir

Continue navegando