Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:

Slides:



Advertisements
Apresentações semelhantes
Criando aplicações WEB
Advertisements

I/O Carlos Bazilio Depto de Ciência e Tecnologia
Aula 3 – DB2 Express-C Autor:
JDBC Java Dababase Connectivity Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
JDBC aplicado no projeto PAIPUC Integrantes: Eduardo M. Nsimba - 4º Ano Gian Paolo Peduto - 2º Ano Heloísa H. S. Santos - 2º Ano Orientador: Prof. Dr.
Prof. Alessandro J. de Souza
Tratamento de Exceções
Java Conexão com Banco de Dados
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS ACESSO A BANCO DE DADOS COM O JDBC Prof. Thiago Pereira Rique
28.5 Instruções para instalar o MySQL e o MySQL Conector/J
(C) 2010 Pearson Education, Inc. Todos os direitos reservados. Os programas que obtêm certos tipos de recursos devem retorná-los ao sistema explicitamente.
Linguagens de Programação Orientadas a Objetos
Módulo I Interface com BancoDados JDBC
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Estrutura de Dados em Java
B ANCO DE D ADOS E JDBC Profa. Msc. Cintia Carvalho Oliveira Mestre em Ciência da Computação – UFU Bacharel em Ciência da Computação - UFJF 1.
Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia
Java :: Persistência de Dados
JAVA: Conceitos Iniciais
Acesso a Base de Dados JDBC Trabalho Realizado por:
Concorrência em Java Threads em Java.
Conexão com Bancos de Dados Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense.
Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que um erro ou problema aconteceu durante a execução de uma aplicação.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
JAVA Linguagem Ambiente de Desenvolvimento
Streams –input e output
Integração com Banco de Dados
Programação Orientada a objetos II
Anexo A. JDBC  Conjunto de interfaces e classes java que faz envio de consultas para um banco de dados.  Objetos(tipos)  Conexão (Driver e Connection)
JSP / Servlets Avançado
JAVA - Struts. AULA 3.
P ROGRAMAÇÃO Prof.: Bruno Rafael de Oliveira Rodrigues.
Programação Orientada à Objetos
JDBC Java Database Connectivity. JDBC Especificação para uso de base de dados em aplicações e applets JAVA; API para uso de drivers JDBC; Compatível com.
Prof. Roberto Rosa Aula 8.  A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para.
Desnvolvimento de Projetos e Aplicações Web Ceça Moraes – Ceça.
Curso Programação – JAVA Centro de Formação São Domingos
Linguagem II Exceções.
Configuração do Ambiente de programação
Tratamento de Exceções
Introdução às Java Threads
Capítulo 6 Exceções.
Curso de Linguagem Java
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Exceções Profa. Patrícia A. Jaques Alterada por Leandro Tonietto abr-15.
JAVA Sintaxe.
CURSO JAVA BÁSICO Módulo JDBC – slide 1 MóduloJDBC.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
April 05 Prof. Ismael H. F. Santos - 1 Módulo Ib Interface com BancoDados JDBC - avançado Prof. Ismael H F Santos.
JDBC Java Database Connectivity docs/guide/jdbc/getstart/introTOC.doc.html.
J AVA D ATABASE C ONNECTIVITY JDBC. JDBC O Java Database Connectivity (JDBC) API é o padrão da indústria para que aplicações Java acessem bancos de dados.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Java Acesso a Banco de Dados Prof. Marcos André Pisching, M.Sc.
Acesso a Banco de Dados com JDBC e DAO
Desenvolvimento WEB II Aula 3 – Conexão com o Banco de Dados
Capítulo 15 – Tratamento de Exceções
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
JavaServer Faces – JSF Fernando Freitas Costa Bacharel em Sistemas de Informação Especialista em Gestão e Docência Universitária blog.fimes.edu.br/fernando.
Persistência de dados e padrão DAO
Banco de Dados Marcio Ferreira da Silva. PHP e Banco de Dados Uma das facilidades do PHP é na utilização dos bancos de dados. O MySQL é um banco de dados.
Banco de Dados Relacionais. Tabelas DB Relacionais são baseados em tabelas As tabelas armazenam registros Cada registro ocupa uma linha da tabela Registros.
Prof.: Jean Carlo Mendes
Persistência de dados e padrão DAO Padrões de Projeto Orientado a Objetos Profa. Danielle Martin/Mauricio Universidade de Mogi das Cruzes.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Acesso a Banco de dados com JDBC
Transcrição da apresentação:

Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:

Acessando banco de dados Java dispõe de uma API para acessar repositórios de dados: a Java DataBase Connectivity API ou JDBC API. A JDBC implementa em Java a funcionalidade definida pelo padrão SQL Call Level Interface ou SQLCLI.

Drives JDBC Existem 4 tipos de diferentes de drivers JDBC (para uma lista de fornecedores por especificação e tipo: ( Uma vez que ODBC é uma especificação padrão do mundo Wintel, o tipo 1 é um driver de ponte entre Java e ODBC. O driver de ponte mais conhecido é o fornecido pela Sun o JDBC-ODBC bridge. Este tipo de driver não é portável, pois depende de chamadas a funções de ODBC implementadas em linguagem C e compiladas para Wintel, ou outra plataforma ODBC compatível, as chamadas funções nativas.

O driver tipo 2 é implementado parcialmente em Java e parcialmente através de funções nativas que implementam alguma API específica do fornecedor de banco de dados. Este tipo faz o que se chama de wrap-out, ou seja, provê uma interface Java para uma API nativa não-Java.

O tipo 3 é um driver totalmente Java que se comunica com algum tipo de middleware que então se comunica com o banco de dados. O tipo 4 é um driver totalmente Java que vai diretamente ao banco de dados.

Acessando bancos de dados em JDBC import java.sql.*; A primeira coisa a fazer é estabelecer uma conexão com o banco de dados. Fazemos isso em dois passos: 1. primeiro carregamos o driver para o banco de dados na JVM da aplicação. 2. Uma vez carregado, o driver se registra para o DriverManager e está disponível para a aplicação. Utilizamos então a classe DriverManager para abrir uma conexão com o banco de dados.

A interface Connection designa um objeto, no caso con, para receber a conexão estabelecida: try //A captura de exceções SQLException em Java é obrigatória para usarmos JDBC. { // Este é um dos meios para registrar um driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance(); // Registrado o driver, vamos estabelecer uma conexão Connection con = DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta", "senha"); } catch(SQLException e) { // se houve algum erro, uma exceção é gerada para informar o erro e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou }

Vejamos como realizar uma consulta sobre o título, numero de faixas e o artista de cada CD no banco de dados. Podemos usar 3 interfaces para executar comandos SQL no banco de dados: A primeira delas é a interface Statement, que permite a execução dos comandos fundamentais de SQL (SELECT, INSERT, UPDATE ou DELETE). A interface PreparedStatement nos permite usufruir de SQL armazenado ou pré-compilado no banco, quando o banco de dados suportar este recurso. A terceira interface é CallableStatement, e permite executar procedimentos e funções armazenados no banco quando o banco suportar este recurso. Vejamos como utilizar a interface Statement.

createStatement() // Após estabelecermos a conexão com o banco de dados // Utilizamos o método createStatement de con para criar o Statement Statement stm = con.createStatement(); // Vamos executar o seguinte comando SQL: String SQL = "Select titulo, autor, total_faixas from MeusCDs";

A interface ResultSet permite colher os resultados da execução de nossa query no banco de dados. Esta interface apresenta uma série de métodos para prover o acesso aos dados:

// Definido o Statement, executamos a query no banco de dados ResultSet rs = stm.executeQuery(SQL); // O método next() informa se houve resultados e posiciona o cursor do banco // na próxima linha disponível para recuperação // Como esperamos várias linhas utilizamos um laço para recuperar os dados while(rs.next()) { // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado: String tit = rs.getString("titulo"); String aut = rs.getString("autor"); int totalFaixas = rs.getInt("total_faixas"); // As variáveis tit, aut e totalFaixas contém os valores retornados // pela query. Vamos imprimí-los System.out.println("Titulo: "+tit+" Autor: "+aut+" Tot. Faixas: "+totalFaix as); }

E nosso acesso está terminado. O importante agora é liberar os recursos alocados pelo banco de dados para a execução deste código. Podemos fazer isso fechando o Statement, que libera os recursos associados à execução desta consulta mas deixa a conexão aberta para a execução de uma próxima consulta, ou fechando diretamente a conexão, que encerra a comunicação com o banco de dados.

Para termos certeza de que vamos encerrar esta conexão mesmo que uma exceção ocorra, reservamos o fechamento para a cláusula finally() do tratamento de exceções. finally { try { con.close(); } catch(SQLException onConClose) { System.out.println("Houve erro no fechamento da conexão"); onConClose.printStackTrace(); }

Uma classe para listar uma tabela Vamos colocar tudo isso em conjunto para termos uma visão em perspectiva:

package wlss.jdbcTutorial; import java.sql.*; class Exemplo1 { public static void main(String args[]) { // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC. // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try Connection con = null;

try { // Este é um dos meios para registrar um driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").getInstance(); // Registrado o driver, vamos estabelecer uma conexão con = DriverManager.getConnection("jdbc:odbc:meusCdsDb","conta","senha" ); // Após estabelecermos a conexão com o banco de dados // Utilizamos o método createStatement de con para criar o Statement Statement stm = con.createStatement(); // Vamos executar o seguinte comando SQL : String SQL = "Select titulo, autor, total_faixas from MeusCDs"; // Definido o Statement, executamos a query no banco de dados ResultSet rs = stm.executeQuery(SQL); // O método next() informa se houve resultados e posiciona o cursor do banco // na próxima linha disponível para recuperação // Como esperamos várias linhas utilizamos um laço para recuperar os da dos

while(rs.next()) { // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado: String tit = rs.getString("titulo"); String aut = rs.getString("autor"); int totalFaixas = rs.getInt("total_faixas"); // As variáveis tit, aut e totalFaixas contém os valores retornados // pela query. Vamos imprimí-los System.out.println(48:"Titulo: "+tit+" Autor: "+aut+"49: Tot. Faixas: "+totalFaixas); } } catch(SQLException e) { // se houve algum erro, uma exceção é gerada para informar o erro e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou }

finally { try { con.close(); } catch(SQLException onConClose) { System.out.println("Houve erro no fechamento da conexão"); onConClose.printStackTrace(); } } // fim do bloco try-catch-finally } // fim da main } // fim de nosso primeiro exemplo !