O documento apresenta uma introdução à API JDBC para conexão entre aplicações Java e bancos de dados, descrevendo sua arquitetura, classes principais e passos para estabelecer conexão, enviar comandos SQL e manipular resultados.
Slides para aula de como acessar bancos de dados em Java usando JDBC.
A apresentação é curta, mas inclui as principais informações sobre a API JDBC (DataSource, Connection, Statement, PreparedStatement) e exemplos de código para explanação.
O código-fonte de exemplo está disponível no GitHub: https://github.com/utluiz/jdbc-example
On holiday, I gave some courses about Java. Then I created this slide for dealing about JDBC. I hope it be useful.
Ramon Pereira Lopes
Ramon.Lopes@Sun.COM
Esta apresentação integra o conjunto de materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop em Java Aplicando Padrões de Projeto.
Slides para aula de como acessar bancos de dados em Java usando JDBC.
A apresentação é curta, mas inclui as principais informações sobre a API JDBC (DataSource, Connection, Statement, PreparedStatement) e exemplos de código para explanação.
O código-fonte de exemplo está disponível no GitHub: https://github.com/utluiz/jdbc-example
On holiday, I gave some courses about Java. Then I created this slide for dealing about JDBC. I hope it be useful.
Ramon Pereira Lopes
Ramon.Lopes@Sun.COM
Esta apresentação integra o conjunto de materiais didáticos do curso a distância Desenvolvimento de Aplicativos Desktop em Java Aplicando Padrões de Projeto.
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aqui são apresentados as técnicas de Desenvolvimento com Jakarta Cactus.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aula com tutorial sobre JPA usando o NetBeans 7.1. Ensina passo-a-passo a geração de classes entidade e controladores (DAO) JPA no NetBeans 7.x.
O banco de dados utiliza o sgbd H2 Database.
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aqui são apresentados as técnicas de Desenvolvimento com Jakarta Cactus.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aqui são apresentados conceitos básicos a plataforma Java. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Aula com tutorial sobre JPA usando o NetBeans 7.1. Ensina passo-a-passo a geração de classes entidade e controladores (DAO) JPA no NetBeans 7.x.
O banco de dados utiliza o sgbd H2 Database.
Apresentação utilizada na palestra de introdução ao JDBC com o objetivo de mostrar uma conexão simples com um banco de dados e envio de alguns comandos.
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
Palestra dada por Diego Tremper no CONAPHP 2008 - Congresso Nacional de PHP que ocorreu em São Paulo nos dias 18 e 19 de Outubro dentro do CONISLI 2008
Aqui são apresentados conceitos básicos sobre o paradigma web. Simples e rápido.
/**Depois que entrei no mundo Java, começei a procurar por conteúdo na internet para estudar, então me deparei com um ótimo site, http://www.argonavis.com.br, de um grande cara chamado Helder Rocha, que disponibiliza este mesmo conteúdo em seu site também. Obrigado pela ajuda a comunidade.*/
Minha aplicação Java vai pra nuvem. E agora?Felipe Mamud
Estamos acostumados a trabalhar com Java em ambiente local ou em algum servidor de desenvolvimento. Nesta talk tentarei mostrar os principais desafios encontrados quando utilizamos Java em um cenário de Cloud, utilizando um PaaS de mercado.
Semelhante a Jdbc, JAVA DATABASE CONNECTIVITY (20)
Apresentação sobre o Mercado de TI no Brasil, na Grande Natal. E um pouco sobre a Política Industrial Brasileira. Contém slides falando sobre a crise financeira de 2008/09 versus o mercado de TI.
4. INTRODUÇÃO
API JDBC possibilita ao programador de aplicações
Java abrir conexões com um SGBD, consultar e
modificar algum BD, utilizando a linguagem SQL.
Características:
Portabilidade
API independente do Banco de Dados
5. PADRÃO JDBC DE ACESSO A BASES DE DADO
API de acesso para executar comandos SQL
Implementa as interfaces do pacote padrão
java.sql
Envio para qualquer tipo de Banco de Dados
relacional
Independente de API/Linguagem proprietária
dos fabricantes de SGBD (Microsoft, Oracle,
Informix, …)
Uso de drivers específicos de fabricantes
7. ARQUITETURA JDBC
Aplicações Java “conversam”
com o Gerenciador de Drivers
JDBC (DriverManager)
Este, por sua vez, se comunica
com algum driver atualmente
carregado.
Programador se preocupa
apenas com API do gerenciador
de drivers.
Drivers se ocupam da interface
com o SGBD.
Ponte JDBC pode ser usada se
não existir um driver para um
determinado SGBD.
9. IMPLEMENTAÇÃO
O pacote JDBC vêm incluso com as distribuições Java
As classes que compões o kit JDBC estão nos pacotes java.sq
e javax.sql.
Classes do pacote java.sql: Connection; Statement;
PreparedStatement; CallableStatement; ResultSet;
Driver
Deve-se obter um driver para o sistema de gerência de banco
de dados a ser utilizado.
O URL a seguir fornece uma lista de drivers JDBC atualmente
disponíveis:
http://industry.java.sun.com/products/jdbc/drivers
10. CLASSES PRINCIPAIS
java.sql.DriverManager
Provê serviços básicos para gerenciar diversos drivers JDBC
java.sql.Connection
Representa uma conexão estabelecida com o BD.
java.sql.Statement
Representa sentenças onde são inseridos os comandos SQL
Permite realizar todo o tratamento das consultas (select) e dos comandos de
atualizações (insert, delete, update)
java.sql.ResultSet
Representa o conjunto de registros resultante de uma consulta.
Permite manipular os resultados
Java e SQL
Colunas de um objeto ResultSet podem ser referenciadas por um número
posicional ou pelo nome da coluna do resultado.
ResultSet rs.getString(Nome) ou ResultSet rs.getString(1)
11. PASSO-A-PASSO
• Carregar o Driver para a memória definir a
URL de conexão com o repositório
• Estabelecer a conexão com o repositório
• Criar um objeto do tipo Statement
• Executar uma consulta (recuperar, atualizar,
incluir)
• Com o resultado, executar um
processamento
• Fechar a conexão
12. DRIVER
Implementa a interface Driver
Todo driver, ao ser carregado, se cadastra junto ao
DriverManager através de um inicializador
estático. Basta carregar a classe que o driver
estará disponível para uso
Podemos fazer isso explicitamente :
void carregaDrivers() throws ClassNotFoundException {
Class.forName(org.postgresql.Driver);
...
}
14. OBTENDO CONEXÃO
O argumento para o método getConnection tem um formato
similar ao de uma URL
jdbc:<subprotocolo>:<subnome>
Jdbc: Protocolo: JDBC é o único valor possível
subProtocolo: identifica um driver de BD
Subnome: indica a localização e nome do BD a ser acessado.
Sintaxe é própria de cada driver
Use o método:
String url =jdbc:mysql://localhost:3306/Empresa;
DriverManager.getConnection(url, usuario, senha);
jdbc:postgresql://serverName/mydatabase
15. ABRINDO CONEXÃO
try {
Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
Connection com =
DriverManager.getConnection(jdbc:odbc:Northwind,,);
...// Código de manipulação do BD
} catch (ClassNotFoundException e) {
System.out.println(Classe não Encontrada!);
} catch (SQLException e) {
System.out.println(Erro na Conexão!);
}
16. CRIANDO COMANDOS SQL
Classe Connection: implementa a interface Connection
A partir de uma conexão, podemos:
criar comandos SQL (de diferentes formas)
configurar características da conexão, como:
controle de transações
Criando comandos SQL
Class.forName(org.postgresql.Driver);
Connection conn =
DriverManager.getConnection(jdbc:postgresql:usuarios);
Statement stat = conn.createStatement();
// stat pode ser utilizado para enviar comandos
// SQL à base de dados
18. ENVIANDO COMANDOS SQL
Statement - envia texto SQL ao servidor
Comandos diretos
Podem ser diretamente enviados à base através de um objeto que
implemente a interface Statement
Comandos DDL, de atualização da base e de consulta são aceitos
Statement
Um objeto da classe Statement é uma espécie de canal que envia
comandos SQL através de uma conexão
O mesmo Statement pode enviar vários comandos
Para se criar um Statement, é preciso ter criado anteriormente um
objeto Connection.
A partir de uma conexão, pode-se criar diversos objetos Statement.
20. EXECULTANDO STATEMENT
Há dois métodos da classe Statement para envio de comandos
ao SGBD.
Modificações: executeUpdate
Para comandos SQL “INSERT”, ”UPDATE”, ”DELETE”, ou outros que
alterem a base e não retornem dados
Forma geral: executeUpdate(<comando>)
Ex: stmt.executeUpdate(DELETE FROM Cliente);
Esse método retorna um inteiro: quantas linhas foram atingidas.
Consultas: executeQuery
Para comandos “SELECT” ou outros que retornem dados
Forma geral: stmt.executeQuery(<comando>);
Esse método retorna um objeto da classe ResultSet
Ex: rs = stmt.executeQuery(SELECT * FROM Cliente);
21. MANIPULANDO UM OBJETO
RESULTSET
Métodos getXXX
Recuperam um dado de acordo com o tipo
Formas: rs.getXXX(<nome do campo>) ou
rs.getXXX(<posição do campo >)
Exemplo:rs. getString(“nm_cliente”) ou rs.getString(2)
Método next(), previous() - retornam para o próximo
registro no conjunto ou para o anterior. Retornam valor
lógico.
Valor de retorno true indica que há outros registros.
Métodos first(), last() - posicionam o cursor no início ou
no final do conjunto de dados.
Métodos isFirst(), isLast() - testam a posição do cursor;
retorna valor lógico.
23. OBTENÇÃO DO RESULTADO
Representado por um ResultSet
Linhas são acessadas em sequência
São invalidados quando seu Statement for:
Fechado;
re-executado;
usado para obter o próximo resultado de uma Série;
Métodos:
public abstract boolean next() throws SQLException
public abstract void close() throws SQLException
public abstract boolean getBoolean(int columnIndex)
throws SQLException
public abstract boolean getBoolean(String columnName)
throws SQLException
...
public abstract InputStream getAsciiStream(int
columnIndex) throws SQLException
public abstract int findColumn(String columnName)
throws SQLException
24. EXEMPLO DE CONSULTA
import java.sql.*; import java.io.*;
public class Consulta{
public static void main(String args[]) throws IOException{
String comando=SELECT * FROM FONES ;
try{
Connection con;
Class.forName(com.ashna.jturbo.driver.Driver);
con=DriverManager.getConnection (jdbc:JTurbo://rubi/javadb, sa,);
System.out.println(Conectado OK);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(comando);
while (rs.next()) {
System.out.println(Nome: +rs.getString(1)+ Fone: +rs.getString(2));
}
st.close(); con.close();
} catch(SQLException e){
System.out.println(Erro no SQL!); return;
} catch(ClassNotFoundException e){
System.out.println(Driver não Encontrada!); return;
}
System.in.read(); }
}
26. FECHANDO A CONEXÃO
Uma conexão aberta custa caro para o
sistema
Este recurso deve ser liberado e dependendo
do repositório é esperado outros comandos
para encerrar a conexão
Método:
connection.close();
27. CONCLUSÕES
Novos padrões:
JPA (Java Persistence API)- é um framework
utilizado na camada de persistência para o
desenvolvedor ter uma maior
produtividade, com impacto principal num
modo para controlarmos a persistência
dentro de Java. Pela primeira vez, nós,
desenvolvedores temos um modo padrão
para mapear nossos objetos para os do
Banco de Dados.