Prof. Alessandro J. de Souza

Slides:



Advertisements
Apresentações semelhantes
Construção de Algoritmos 2
Advertisements

Programação em Java Prof. Maurício Braga
Aula 3 – DB2 Express-C Autor:
JDBC Java Dababase Connectivity Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/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.
Tecnologia de Programação BD em.Net: Conexão com SQL Server 1º Semestre 2009 > PUCPR > BSI Bruno C. de Paula.
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
Sistemas de Informação Redes de Computadores
setWrapStyleWord() configura o estilo de quebra de linha setLineWrap(true) indica mudança automática de linha A linha 68 registra o objeto resultTable.
28.5 Instruções para instalar o MySQL e o MySQL Conector/J
Linguagens de Programação Orientadas a Objetos
Módulo I Interface com BancoDados JDBC
Banco de Dados I Capítulo 6: Uso de SQL em Aplicações
Documentando con Javadoc
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
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.
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.
Prof.: Bruno Rafael de Oliveira Rodrigues
Java & Bancos de Dados Universidade Salgado de Oliveira Goiânia
Hibernate com JPA Prática
Java :: Persistência de Dados
JAVA: Conceitos Iniciais
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]
Aula R Prof. Naércio Filho Técnico em Informática
Integração com Banco de Dados
Aplicativos Comerciais para Internet Camada View do MVC Apresentando os resultados de uma Consulta.
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
Chamada Remota de Procedimentos
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.
Pilhas Profa. Nádia Félix.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Desnvolvimento de Projetos e Aplicações Web Ceça Moraes – Ceça.
Curso Programação – JAVA Centro de Formação São Domingos
Programação Orientada à Objetos
Wagner Santos C. de Jesus
Configuração do Ambiente de programação
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Tratamento de Exceções
Capítulo 6 Exceções.
Curso de Linguagem Java
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
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:
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
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
Acessando banco de dados com JAVA.  Linguagem independente de plataforma; ◦ “Write once, run anywhere” ◦ JVM  Java Virtual Machine  Mecanismo que permite.
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
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 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
Transcrição da apresentação:

Prof. Alessandro J. de Souza CENTRO FEDERAL DE EDUCAÇÃO TECNOLOGICA DO RN AULA 14 Fundamentos de JDBC Prof. Alessandro J. de Souza

JDBC JDBC é uma interface baseada em Java para acesso a bancos de dados através de SQL. O pacote java.sql consiste de um conjunto de classes e interfaces que permitem embutir código SQL em métodos. Com JDBC é possível construir uma aplicação Java para acesso a qualquer banco de dados SQL. Para usar JDBC é preciso ter um driver JDBC

Tipos de Driver JDBC Tipo 1: ponte ODBC-JDBC 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. Tipo 2: solução com código nativo Usam uma API nativa. Esses drivers contém métodos Java implementados em C ou C++. Tipo 3: solução 100% Java no cliente 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 Tipo 4: solução 100% Java O tipo 4 é um driver totalmente Java que vai diretamente ao banco de dados

Tipos de Driver JDBC Fonte- http://www.argonavis.com.br

Como enviar consultas ao banco? Carregar Driver JDBC; Conectar a fonte de dados; Executar declarações SQL;

Carregar Driver JDBC Carregar Driver JDBC É preciso carregar a classe do driver na aplicação que irá utilizá-lo. Isto pode ser feito com Class.forName(): Exemplo: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Class.forName(“org.postgresql.Driver");

Conectar a fonte de dados Para determinar qual driver será usado usa-se uma URL: jdbc:<subprotocolo>:<dsn> A aplicação usa o subprotocolo para identificar e selecionar o driver a ser instanciado. O dsn é o nome que o subprotocolo utilizará para localizar um determinado servidor ou base de dados. Sintaxe dependente do fabricante: jdbc:odbc: nome_fonte_de_dados jdbc:postgresql://maquina:porta/nome_fonte_de_dados A classe DriverManager manipula objetos do tipo Driver. Connection con = DriverManager.getConnection ("jdbc:odbc:banco",“usuário","senha")

Executar declaraões SQL Existem três formas diferentes de executar declarações SQL: Statement - Oferece meios de passar instruções SQL para o sistema de bancos de dados. PreparedStatement – Declarações SQL semi-estáticas CallableStatement - para chamada de stored procedures Statement stmt = con.createStatement() PreparedStatement pstmt = con.prepareStatement(...); CallableStatement cstmt = con.prepareCall(...);

Exemplo de uso de Statement stmt.execute("CREATE TABLE pessoas " + "(codigo INT PRIMARY KEY, " + " nome CHAR(20), " + " cidade CHAR(20));"); int linhasModificadas = stmt.executeUpdate("INSERT INTO pessoas " + "(codigo, nome, cidade) VALUES " + "(001, 'Carlos', 'natal')"); ResultSet cursor = stmt.executeQuery("SELECT nome, cidade " + " FROM pessoas " + " WHERE codigo = 001");

Exemplo de uso de PreparedStatement Statement pré-compilado que é mais eficiente quando várias queries similares são enviadas com parâmetros diferentes String com instrução SQL é preparado previamente, deixando-se "?" no lugar dos parâmetros Parâmetros são inseridos em ordem, com setTipo(). String sql = "INSERT INTO pessoas (codigo, nome, cidade) VALUES(?, ?, ?)"; PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setInt(1, 002); pstmt.setString(2, "Alessandro"); pstmt.setString(3, "João Pessoa"); pstmt.executeUpdate();

ResultSet O método executeQuery(), da interface Statement, retorna um objeto ResultSet. Pode-se navegar pelas linhas da tabela recuperar as informações armazenadas nas colunas Os métodos de navegação são next(): move uma linha para frente previous(): move uma linha para trás absolute(int n): move para alinha com número específico first(): move para o primeiro registro last(): move para o ultimo registro .... ResultSet rs = stmt.executeQuery(sql); While(rs.next()){ //processa dados ... }

Tipos Java / SQL e métodos de Acesso

Exemplo de ResultSet ResultSet rs = stmt.executeQuery("SELECT * FROM pessoas"); while (rs.next()) { int cod = rs.getInt("codigo"); String nome = rs.getString("nome"); String cidade = rs.getString("cidade"); // faça algo com os valores obtidos na consulta... }

Método Close() e Exceções Após o uso, os objetos Connection, Statement e ResultSet devem ser fechados através do método close(): conexão.close(); statement.close(); resultset.close(); A exceção SQLException é a principal exceção a ser observada em aplicações JDBC Try{ //comando de acesso ao banco }cacth (SQLException ex) { //tratamento de exceções }finally{ //fechamento de conexões }

Exemplo de Persistência public class Banco { public static Connection conn = null; public static Connection getConexao(){ try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:testemy","SA",""); }catch (ClassNotFoundException exc) { System.out.println("Error ao carregar o Driver"); } catch (SQLException ex) { System.out.println("Probelmas ao abrir a conexao com o banco"); } return conn;

Exemplo de Persistência public void salva(Pessoa pessoa) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = Banco.getConexao(); stmt = conn.prepareStatement("insert into tabela1 (nome,telefone, endereco) values (?, ?, ? )"); stmt.setString(1, pessoa.getNome().trim()); stmt.setString(2, pessoa.getTelefone().trim()); stmt.setString(3, pessoa.getEndereco().trim()); stmt.executeUpdate(); } catch (SQLException ex) { System.out.println("Error fatal"); } finally { Banco.closeConexao(conn, rs, stmt); }

Transações Permite a execução atômica de comandos enviados ao banco. Implementada através dos métodos de Connection commit() – aplica mudanças no banco con.commit(); rollback() – desfaz operações realizadas até o momento con.rollback(); setAutoCommit(boolean autoCommit): default é true. con.setAutoCommit(false);

Construindo uma Aplicação web com acesso a banco de dados