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.

Slides:



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

Aula 3 – DB2 Express-C Autor:
JDBC Java Dababase Connectivity Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Natanael (njsj) Thiago (tan2) Rodrigo (rml2)
Prof. Alessandro J. de Souza
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
Linguagens de Programação Orientadas a Objetos
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Módulo I Interface com BancoDados JDBC
Material III-Bimestre Wagner Santos C. de Jesus
Introdução a EJB 3.0 Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Java Persistence API (JPA) Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
Model-View-Controller (MVC) em Aplicações Web Eduardo Martins Guerra Desenvolvimento de Soluções WEB.
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
Acesso a Base de Dados JDBC Trabalho Realizado por:
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.
Conceitos de SGBD Objeto-Relacional Oracle 10g [2]
Integração com Banco de Dados
Design Patterns / Acesso ao banco de dados (java.sql)
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
XIII Jornada de Cursos .NET com C# Lucas Mello Flávio Almeida.
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.
Acessando o WI Após fazer o deploy pelo Tomcat, digite
Desnvolvimento de Projetos e Aplicações Web Ceça Moraes – Ceça.
Curso Programação – JAVA Centro de Formação São Domingos
Configuração do Ambiente de programação
A Linguagem PHP Instituto Vianna Júnior Desenvolvimento para Web Prof. Lúcia Helena de Magalhães 2008.
Curso de Linguagem Java
Academia de Ensino Superior 2007 O Ciclo de Dados.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
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.
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
LINQ e Entity Framework
JDBC Java Database Connectivity docs/guide/jdbc/getstart/introTOC.doc.html.
Introdução à lógica de programação
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
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Programação para Web I AULA 2 BANCO DE DADOS.
PSW1 Prof. Rafael. Persistência Atividade que permite que o estado de um objeto exista mesmo após a extinção do processo computacional que o criou. Em.
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Trabalho Prático de Programação Orientada a Objetos em Java Programação Orientada a Objetos Ludimila Monjardim Casagrande 2011.
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:

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 com Java EE

Objetivo da Aula Apresentar os conceitos básicos da tecnologia JDBC e como realizar tarefas simples de acesso a dados.

Tecnologia JDBC Tipos de Drivers JDBC Statement e PreparedStatement Trabalhando com ResultSet Tratando Exceções de Banco Data Access Objects (DAO) Agenda da Apresentação

O que é JDBC? JDBC (Java Database Connectivity) é uma API padronizada para acesso a dados para a linguagem Java. A API JDBC é baseada em interfaces, o que permite que os detalhes de implementação de cada banco de dados sejam encapsulados no driver de conexão. Garante a manutenção da portabilidade de uma aplicação dentre vários bancos de dados. Basicamente estabelece conexões com o banco de dados, envia instruções SQL e processa os resultados recebidos.

Tipos de Driver JDBC Tipo 1 – JDBC-ODBC Bridge Funciona como uma ponte entre o JDBC e um driver ODBC. Normalmente utilizado quando não há outro tipo de driver disponível. Tipo 2 – JDBC-Native Bridge Este driver converte chamadas JDBC para chamadas de um driver nativo instalado na máquina, o qual se comunica com o banco por um protocolo proprietário. Tipo 3 – Pure Java Driver for Database Midleware O acesso é feito através de uma aplicação intermediária (Middleware) encarregada de traduzir as chamadas JDBC e enviá-las ao banco de dados. Tipo 4 – Direct-to-Database Pure Java Driver Este driver converte as chamadas JDBC diretamente para o protocolo nativo do banco de dados. É o tipo de driver que possui o melhor desempenho.

Conexão no Banco de Dados Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection( "jdbc:postgresql://localhost/teste, "admin", "admin"); Statement stm = con.createStatement(); ResultSet rs = stm.executeQuery("SELECT * FROM TESTE"); //Trabalha com o ResultSet rs.close(); stm.close(); con.close(); Registra Driver Cria Conexão Cria o comando e executa no BD Fechas as Conexões

Passando Parâmetros Statement stm = con.createStatement(); String query = SELECT * FROM USUARIO + WHERE LOGIN = + login + + AND SENHA = + senha + ; ResultSet rs = stm.executeQuery(query); Os parâmetros podem ser concatenados para formar o comando SQL enviado para o banco de dados. Isto não é uma boa prática pois pode criar uma brecha de segurança.... O ataque SQL Injection, envia entradas a aplicação de forma a modificar o comando SQL formado por concatenação de String que é executado no banco de dados.

PreparedStatement Utilizando o objeto PreparedStatement, a String que representa a query possui ? no lugar dos parâmetros, e existem métodos que colocam as variáveis na query com o devido tratamento. O PreparedStatement é mais eficiente pois o driver/BD processa o texto SQL somente uma vez, fazendo um cache de sua representação compilada, o que aumenta o desempenho para um número grande de execuções. String query = SELECT * FROM USUARIO + WHERE LOGIN = ? + AND SENHA = ? ; PreparedStatement stm = con.prepareStatement(query); stm.setString(1,login); stm.setString(2,senha); ResultSet rs = stm.executeQuery();

Trabalhando com o ResultSet ResultSet rs = stm.executeQuery(); while(rs.next()){ rs.getString(1); rs.getInt(nome_coluna); } Recupera o resultado da query como um ResultSet O método next() passa o cursor para próxima linha e retorna false se estiver no final. A classe ResultSet representa o resultado retornado por uma query ao banco de dados. Ele funciona como se fosse um ponteiro que aponta para a linha corrente. Existem vários métodos que recuperam o valor das colunas pela ordem ou pelo nome.

Exceções de Banco de Dados // Declarar variáveis try { // Criar um objeto Connection // Criar os demais objetos // Executa e faz o que tem que fazer } catch(SQLException e){ // Tratar erros do banco de dados } catch(Exception ex) { // Tratar demais exceções } finally { try { // Fechar possíveis ResultSets, Statements e Connections } catch(Exception ef) { // Tratar aqui erros do fechamento das Conexões } Muitos erros podem acontecer enquanto se acessa o banco de dados, e até mesmo quando se tenta fechar a conexão com ele. Segue como é uma estrutura típica de um código que faz acesso a dados.

Data Access Objects (DAO) DAO é um padrão de projeto utilizado para encapsular e abstrair todo acesso a base de dados. Uma interface abstrai os métodos do DAO de sua implementação. O objeto implementa o acesso a dados da forma desejada (JDBC, Hibernate, iBatis e etc...) O objeto de negócios é utilizado nas trocas de mensagens entre o DAO e a classe Cliente. O uso da interface permite que depois seja adicionado cache, verificação de permissões e etc... antes do DAO.

Exercício – Acessando dados Criar um DAO para uma determinada classe que execute inserção, atualização, exclusão e a recuperação individual e de listagens. Utilizar JDBC para o acesso a dados Criar a tabela e a classe de negócios Fazer testes para verificar o funcionamento do DAO Criar uma interface e um método fábrica