SlideShare uma empresa Scribd logo
1 de 26
Java Database Connectivity - JDBC
Dinarte Alves Martins Filho
dinarte@gmail.com
Agenda
 O que é JDBC
 Características do JDBC
 Drivers JDBC
 Arquitetura do JDBC
 Principais Insterfaces
 Como usar o JDBC
 JDBC Passo a Passo
 Pratica I
 Mais Sobre o ResultSet (Navegabilidade e Edição)
 Pratica II
 Controle de Transações com JDBC
 Pratica III
Java Database Connectivity - JDBC
 Java SE
 Database Tecnologies
 Java DB
 Java Data Objects JDO
 The Java Database Connectivity (JDBC)
 JDBC é uma API (Conjunto de Classes e Interfaces)
presente no Java SE que encapsula a complexidade
da comunicação com SGBDs.
 Enviar informações para um banco de dados
 Receber informações de um banco de dados (Resultado
de Consultas)
 Suporta DML e DDL, DCL e TCL*
Java Database Connectivity - JDBC
DML – Data Manipulation Language
DDL – Data Defination Language
DCL – Data Control Language
TCL – Transaction Control Language
COMMIT
ROLLBACK
* O JDBC implementa de forma
programática,
Através de métodos presentes na API.
Java Database Connectivity - JDBC
 Outras características do JDBC
 É multi-sgbd: suporta vários tipos gerenciadores de
banco de dados diferentes.
 Suas Classes estão no pacote java.sql e javax.sql do
Java SE.
 Os pacotes acima já estão embutidos no na plataforma
Java SE.
 http://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/
 Trata objetos do banco de dados (Tabelas, Linhas,
Colunas, Dados) como objetos java.
 Utiliza-se de Drives para conectar a um SGBD específico.
Driver JDBC
 O Que é um Driver?
 Analogia: Um driver é um software que permite que o
computador se comunique com o hardware ou com os
dispositivos. Sem drivers, o hardware conectado ao
computador, por exemplo, uma placa de vídeo ou uma
impressora, não funcionará corretamente.
 Driver JDB
 Um driver JDBC é um componente de software que
permite que uma aplicação Java interaja com um banco
de dados. Para conectar com bancos de dados
individuais, o JDBC (a API Java Database Connectivity)
requer drivers para cada banco de dados. O driver JDBC
fornece a conexão ao banco de dados e implementa
o protocolo para transferir a consulta e o resultado entre
cliente e banco de dados.
Arquitetura do JDBC
Moelo de Interfaces JDBC
 Principais Interfaces
Principais Intefaces do JDBC
 Connection
 Estabelece uma conexão com o Banco de Dados.
 Statement
 Envias as instruções para serem executadas no Banco
de Dados.
 ResultSet
 Implementa um cursor no banco de dados que possibilita
manipular os registros do resultado de uma consulta.
Como usar?
 Baixar o Driver específico para o seu banco de
dados.
 Adicionar o jar do Driver ao classpath da sua
aplicação.
 No Eclipse: Project -> Properts -> Java Build Path ->
Libraries -> Add External JARs.
Passos do JDBC
 Carregar o Driver
 Conectar ao Banco de Dados
 Executar a consulta SQL
(select/Insert/update/delete/ etc...)
 Processar os resultados
 Fechar a Conexão;
Passos do JDBC
 Carregar o Driver
 Class.forName(“com.mysql.jdbc.Driver”).newInstance();
 Conectar ao Banco de Dados
String url = “jdbc:mysql://localhost/dbname?user=login&password=xxxxx”
Connection conn = DriveManager.getConnection(url);
Passos do JDBC
 Executar a consulta SQL
 a) Criar o Statement:
 Statment stmt= conn.createStatment();
 Agora o obejeto stmt será usado para enviar instruções ao
banco de dados:
 executeQuery() para SELECT
 executeUpdate() para INSERT, UPDATE, DELETE
 B) Enviar os Statements
 stmt.executeQuery(“SELECT* FROM Pessoa”);
Passos do JDBC
 Processar os resultados
 a) Executando uma consulta:
ResultSetrs = stmt.executeQuery(“SELECT * FROM useres”);
while (rs.next()) {
String userId = rs.getString(“userId”) //nome da coluna
String firstName = rs.getString(2) //índice da coluna
int type = rs.getInt(“type”)
}
 b) Inserindo uma linha:
int rows = stmt.executeUpdate(“INSERT INTO users VALUES(‘dinarte’, ‘Dinarte’,’Alves’,’123456’)”);
 Fechar a Conexão:
rs.close(); //por padrão o resultset fecha automaticamentejunto com a instruçãode fechamento do statement.
stmt.close();
conn.close();
http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
Vamos praticar?
Mais Sobre o ResultSet
 ResultSet é uma interface que representa uma Tabela do Banco de Dados.
 Um objeto ResultSet é geralmente gerado pela a execução de um statment.
 Por padrão um objeto ResultSet mantém um cursor posicionado na linha
atual dos dados, Inicialmente o cursos é posicionado antes da primeira
linha.
 O método next move o cursor para a próxima linha e retorna false quando
não houver mais próxima linha.
 É aconselhável o uso do While para interar sobre um ResultSet
 Um ResultSet padrão não permite que os dados sejam editados e o cursor
só se movimenta para a frente.
 Um ResultSet implementa a interface AutoCloseable, significa que ele fecha
automáticamente junto com a instrução de fechamento do Statement.
ResultSet Navegável e Editável
 É possível obter um objeto do tipo ResultSet onde
pode-se andar com o sursor bidirecionalmente, além
de promover edição dos dados (Insert, Update,
Delete):
 Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
 ResultSet rs = stmt.executeQuery("SELECT a, b FROM
TABLE2");
 rs will be scrollable, will not show changes made by
others, and will be updatable.
ResultSet Navegável e Editável
Alteração de Dados via ResultSet
Inserção de Dados via ResultSet
Vamos praticar?
Controle de Transações com JDBC
 Muitas vezes precisamos executar várias instruções
SQL no banco de dados onde uma destas
instruções não fazem sentido sem a execução das
outras.
 Geralmente isso acontece quando estamos
persistindo informações onde uma regra de negócio
foi aplicada como por exemplo:
 Se eu processo uma venda no meu sistema de vendas,
eu tenho que executar as segintes operações:
 Inserir um registro na entidade Venda.
 Inserir um ou mais registros na entidade ItemVenda.
 Alterar o campo qtd_estoque na Entidade Produto de acordo
com o numero de produtos vendidos nesta Venda.
Controle de Transações com JDBC
 Recapitulando:
 Inserir um registro na entidade Venda.
 Inserir um ou mais registros na entidade ItemVenda.
 Alterar o campo qtd_estoque na Entidade Produto de acordo com
o numero de produtos vendidos nesta Venda.
 Perceba que no mundo real não faz sentido eu ter uma
venda que não possui produtos vendidos (ItemVenda),
também não faz sentido um ItemVenda sem que haja
uma Venda, Também não faz sentido alterar o meu
estoque se não houve venda ou items da venda.
 Então, caso uma das operações não fossem
consolidadas isso geraria um grave problema de
Inconsistência de Dados
Controle de Transações com JDBC
 Então devemos garantir que todas as operações envolvidas
nesta regra de negócio sejam executadas com sucesso, caso
uma delas apresente erro, as demais deveram ser desfeitas:
Tente{
 Inserir um registro na entidade Venda.
 Inserir um ou mais registros na entidade ItemVenda.
 Alterar o campo qtd_estoque na Entidade Produto de acordo com o
numero de produtos vendidos nesta Venda.
Confirmar Operações.
} HouveAlgumErro{
Desfazer Tudo.
}
Controle de Transações com JDBC
 Para executar todas as operações no banco?
 commit
 Para abortar todas as operações?
 rollback
 Então vamos lá!
Por padrão o Objeto Connection executa o commit das operações de forma
automática. Para assumirmos o controle das transações precisamos alterar este
comportamento:
conn.setAutoCommit(false);
try{
... Executar statement 1...
.. Executar statement 2...
.. Executar statement X...
conn.commit();
}cath(Exception e){
conn.rollback();
}
Vamos praticar?
Referencias
 http://pt.stackoverflow.com/questions/39602/transa%
C3%A7%C3%A3o-java-sqlserver-dividida-em-
v%C3%A1rios-m%C3%A9todos
 http://www.devmedia.com.br/jdbc-de-ponta-a-ponta-
metadados-transacoes-seguranca-e-
otimizacao/8683
 http://docs.oracle.com/javase/7/docs/api/java/sql/Re
sultSet.html
 https://docs.oracle.com/javase/tutorial/jdbc/basics/ret
rieving.html
 https://docs.oracle.com/javase/tutorial/jdbc/basics/in
dex.html
 http://pt.slideshare.net/itsec/jdbc-tutorial
Java database connectivity   jdbc

Mais conteúdo relacionado

Mais procurados

Mais procurados (12)

Jdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYJdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITY
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 
Tutorial +login+mvc
Tutorial +login+mvcTutorial +login+mvc
Tutorial +login+mvc
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Boas práticas com jpa 2 e hibernate flisol 2012
Boas práticas com jpa 2 e hibernate   flisol 2012Boas práticas com jpa 2 e hibernate   flisol 2012
Boas práticas com jpa 2 e hibernate flisol 2012
 
Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012Introdução a JPA e Hibernate - TDC 2012
Introdução a JPA e Hibernate - TDC 2012
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Bancos de dados e jdbc java para desenvolvimento web
Bancos de dados e jdbc   java para desenvolvimento webBancos de dados e jdbc   java para desenvolvimento web
Bancos de dados e jdbc java para desenvolvimento web
 
JPA - Java Persistence API
JPA - Java Persistence APIJPA - Java Persistence API
JPA - Java Persistence API
 
Aula1
Aula1Aula1
Aula1
 
Hibernate conceitos
Hibernate conceitosHibernate conceitos
Hibernate conceitos
 

Semelhante a Java database connectivity jdbc

Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java IIIVerônica Veiga
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)Mario Sergio
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...Professor Samuel Ribeiro
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves PagesAmanda Luz
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-ptPedro Sousa
 
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NETfilipe-lemos
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento webValdir Junior
 

Semelhante a Java database connectivity jdbc (20)

Java13
Java13Java13
Java13
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Apostila: Curso de java III
Apostila: Curso de java IIIApostila: Curso de java III
Apostila: Curso de java III
 
Curso de Java (Parte 5)
Curso de Java (Parte 5)Curso de Java (Parte 5)
Curso de Java (Parte 5)
 
CURSO JAVA 01
CURSO JAVA 01CURSO JAVA 01
CURSO JAVA 01
 
Aula1
Aula1Aula1
Aula1
 
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...Introdução à programação para web com Java -  Módulo 01: Conexão com bamco de...
Introdução à programação para web com Java - Módulo 01: Conexão com bamco de...
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Introdução ao JDBC - BarreirasJUG
Introdução ao JDBC - BarreirasJUGIntrodução ao JDBC - BarreirasJUG
Introdução ao JDBC - BarreirasJUG
 
Jpa de a à z por que conhecer jpa
Jpa de a à z  por que conhecer jpa Jpa de a à z  por que conhecer jpa
Jpa de a à z por que conhecer jpa
 
Java com banco my sql
Java com banco my sqlJava com banco my sql
Java com banco my sql
 
JSP - Java Serves Pages
JSP - Java Serves PagesJSP - Java Serves Pages
JSP - Java Serves Pages
 
J530 15 workshop
J530 15 workshopJ530 15 workshop
J530 15 workshop
 
Ado
AdoAdo
Ado
 
Jsf
JsfJsf
Jsf
 
Conceitos de Java Web
Conceitos de Java WebConceitos de Java Web
Conceitos de Java Web
 
Workshop Ruby on Rails dia 2 ruby-pt
Workshop Ruby on Rails dia 2  ruby-ptWorkshop Ruby on Rails dia 2  ruby-pt
Workshop Ruby on Rails dia 2 ruby-pt
 
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
05 - Acesso e Manipulação de Dados através de Classes do ADO.NET
 
Mvc model view controller - java para desenvolvimento web
Mvc   model view controller - java para desenvolvimento webMvc   model view controller - java para desenvolvimento web
Mvc model view controller - java para desenvolvimento web
 
Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 

Último

Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 

Último (20)

Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 

Java database connectivity jdbc

  • 1. Java Database Connectivity - JDBC Dinarte Alves Martins Filho dinarte@gmail.com
  • 2. Agenda  O que é JDBC  Características do JDBC  Drivers JDBC  Arquitetura do JDBC  Principais Insterfaces  Como usar o JDBC  JDBC Passo a Passo  Pratica I  Mais Sobre o ResultSet (Navegabilidade e Edição)  Pratica II  Controle de Transações com JDBC  Pratica III
  • 3. Java Database Connectivity - JDBC  Java SE  Database Tecnologies  Java DB  Java Data Objects JDO  The Java Database Connectivity (JDBC)  JDBC é uma API (Conjunto de Classes e Interfaces) presente no Java SE que encapsula a complexidade da comunicação com SGBDs.  Enviar informações para um banco de dados  Receber informações de um banco de dados (Resultado de Consultas)  Suporta DML e DDL, DCL e TCL*
  • 4. Java Database Connectivity - JDBC DML – Data Manipulation Language DDL – Data Defination Language DCL – Data Control Language TCL – Transaction Control Language COMMIT ROLLBACK * O JDBC implementa de forma programática, Através de métodos presentes na API.
  • 5. Java Database Connectivity - JDBC  Outras características do JDBC  É multi-sgbd: suporta vários tipos gerenciadores de banco de dados diferentes.  Suas Classes estão no pacote java.sql e javax.sql do Java SE.  Os pacotes acima já estão embutidos no na plataforma Java SE.  http://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/  Trata objetos do banco de dados (Tabelas, Linhas, Colunas, Dados) como objetos java.  Utiliza-se de Drives para conectar a um SGBD específico.
  • 6. Driver JDBC  O Que é um Driver?  Analogia: Um driver é um software que permite que o computador se comunique com o hardware ou com os dispositivos. Sem drivers, o hardware conectado ao computador, por exemplo, uma placa de vídeo ou uma impressora, não funcionará corretamente.  Driver JDB  Um driver JDBC é um componente de software que permite que uma aplicação Java interaja com um banco de dados. Para conectar com bancos de dados individuais, o JDBC (a API Java Database Connectivity) requer drivers para cada banco de dados. O driver JDBC fornece a conexão ao banco de dados e implementa o protocolo para transferir a consulta e o resultado entre cliente e banco de dados.
  • 8. Moelo de Interfaces JDBC  Principais Interfaces
  • 9. Principais Intefaces do JDBC  Connection  Estabelece uma conexão com o Banco de Dados.  Statement  Envias as instruções para serem executadas no Banco de Dados.  ResultSet  Implementa um cursor no banco de dados que possibilita manipular os registros do resultado de uma consulta.
  • 10. Como usar?  Baixar o Driver específico para o seu banco de dados.  Adicionar o jar do Driver ao classpath da sua aplicação.  No Eclipse: Project -> Properts -> Java Build Path -> Libraries -> Add External JARs.
  • 11. Passos do JDBC  Carregar o Driver  Conectar ao Banco de Dados  Executar a consulta SQL (select/Insert/update/delete/ etc...)  Processar os resultados  Fechar a Conexão;
  • 12. Passos do JDBC  Carregar o Driver  Class.forName(“com.mysql.jdbc.Driver”).newInstance();  Conectar ao Banco de Dados String url = “jdbc:mysql://localhost/dbname?user=login&password=xxxxx” Connection conn = DriveManager.getConnection(url);
  • 13. Passos do JDBC  Executar a consulta SQL  a) Criar o Statement:  Statment stmt= conn.createStatment();  Agora o obejeto stmt será usado para enviar instruções ao banco de dados:  executeQuery() para SELECT  executeUpdate() para INSERT, UPDATE, DELETE  B) Enviar os Statements  stmt.executeQuery(“SELECT* FROM Pessoa”);
  • 14. Passos do JDBC  Processar os resultados  a) Executando uma consulta: ResultSetrs = stmt.executeQuery(“SELECT * FROM useres”); while (rs.next()) { String userId = rs.getString(“userId”) //nome da coluna String firstName = rs.getString(2) //índice da coluna int type = rs.getInt(“type”) }  b) Inserindo uma linha: int rows = stmt.executeUpdate(“INSERT INTO users VALUES(‘dinarte’, ‘Dinarte’,’Alves’,’123456’)”);  Fechar a Conexão: rs.close(); //por padrão o resultset fecha automaticamentejunto com a instruçãode fechamento do statement. stmt.close(); conn.close(); http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html
  • 16. Mais Sobre o ResultSet  ResultSet é uma interface que representa uma Tabela do Banco de Dados.  Um objeto ResultSet é geralmente gerado pela a execução de um statment.  Por padrão um objeto ResultSet mantém um cursor posicionado na linha atual dos dados, Inicialmente o cursos é posicionado antes da primeira linha.  O método next move o cursor para a próxima linha e retorna false quando não houver mais próxima linha.  É aconselhável o uso do While para interar sobre um ResultSet  Um ResultSet padrão não permite que os dados sejam editados e o cursor só se movimenta para a frente.  Um ResultSet implementa a interface AutoCloseable, significa que ele fecha automáticamente junto com a instrução de fechamento do Statement.
  • 17. ResultSet Navegável e Editável  É possível obter um objeto do tipo ResultSet onde pode-se andar com o sursor bidirecionalmente, além de promover edição dos dados (Insert, Update, Delete):  Statement stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);  ResultSet rs = stmt.executeQuery("SELECT a, b FROM TABLE2");  rs will be scrollable, will not show changes made by others, and will be updatable.
  • 18. ResultSet Navegável e Editável Alteração de Dados via ResultSet Inserção de Dados via ResultSet
  • 20. Controle de Transações com JDBC  Muitas vezes precisamos executar várias instruções SQL no banco de dados onde uma destas instruções não fazem sentido sem a execução das outras.  Geralmente isso acontece quando estamos persistindo informações onde uma regra de negócio foi aplicada como por exemplo:  Se eu processo uma venda no meu sistema de vendas, eu tenho que executar as segintes operações:  Inserir um registro na entidade Venda.  Inserir um ou mais registros na entidade ItemVenda.  Alterar o campo qtd_estoque na Entidade Produto de acordo com o numero de produtos vendidos nesta Venda.
  • 21. Controle de Transações com JDBC  Recapitulando:  Inserir um registro na entidade Venda.  Inserir um ou mais registros na entidade ItemVenda.  Alterar o campo qtd_estoque na Entidade Produto de acordo com o numero de produtos vendidos nesta Venda.  Perceba que no mundo real não faz sentido eu ter uma venda que não possui produtos vendidos (ItemVenda), também não faz sentido um ItemVenda sem que haja uma Venda, Também não faz sentido alterar o meu estoque se não houve venda ou items da venda.  Então, caso uma das operações não fossem consolidadas isso geraria um grave problema de Inconsistência de Dados
  • 22. Controle de Transações com JDBC  Então devemos garantir que todas as operações envolvidas nesta regra de negócio sejam executadas com sucesso, caso uma delas apresente erro, as demais deveram ser desfeitas: Tente{  Inserir um registro na entidade Venda.  Inserir um ou mais registros na entidade ItemVenda.  Alterar o campo qtd_estoque na Entidade Produto de acordo com o numero de produtos vendidos nesta Venda. Confirmar Operações. } HouveAlgumErro{ Desfazer Tudo. }
  • 23. Controle de Transações com JDBC  Para executar todas as operações no banco?  commit  Para abortar todas as operações?  rollback  Então vamos lá! Por padrão o Objeto Connection executa o commit das operações de forma automática. Para assumirmos o controle das transações precisamos alterar este comportamento: conn.setAutoCommit(false); try{ ... Executar statement 1... .. Executar statement 2... .. Executar statement X... conn.commit(); }cath(Exception e){ conn.rollback(); }
  • 25. Referencias  http://pt.stackoverflow.com/questions/39602/transa% C3%A7%C3%A3o-java-sqlserver-dividida-em- v%C3%A1rios-m%C3%A9todos  http://www.devmedia.com.br/jdbc-de-ponta-a-ponta- metadados-transacoes-seguranca-e- otimizacao/8683  http://docs.oracle.com/javase/7/docs/api/java/sql/Re sultSet.html  https://docs.oracle.com/javase/tutorial/jdbc/basics/ret rieving.html  https://docs.oracle.com/javase/tutorial/jdbc/basics/in dex.html  http://pt.slideshare.net/itsec/jdbc-tutorial