Desnvolvimento de Projetos e Aplicações Web Ceça Moraes – Ceça.

Slides:



Advertisements
Apresentações semelhantes
Banco de Dados Prof. Antonio.
Advertisements

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.
Prof. Alessandro J. de Souza
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
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
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
Maurício Edgar Stivanello
Linguagens de Programação Orientadas a Objetos
Módulo I Interface com BancoDados JDBC
Ronaldo Celso Messias Correia
Material III-Bimestre Wagner Santos C. de Jesus
Banco de Dados I Capítulo 6: Uso de SQL em Aplicaçõ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.
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.
Desenvolvimento de Projeto e Aplicações Web
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
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
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
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
Chamada Remota de Procedimentos
P ROGRAMAÇÃO Prof.: Bruno Rafael de Oliveira Rodrigues.
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
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.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Curso Programação – JAVA Centro de Formação São Domingos
Programação Orientada à Objetos
Configuração do Ambiente de programação
Entity Beans Marco Antonio Arquiteto de Software Dezembro/2007.
Curso de Linguagem Java
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:
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.
Programação para Web I AULA 2 BANCO DE DADOS.
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:
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.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
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:

Desnvolvimento de Projetos e Aplicações Web Ceça Moraes – Ceça Moraes –

17/12/20142 Conteúdo JDBC

17/12/20143 Introdução JDBC (Java DataBase Conectivity) é uma API Java que fornece classes e interfaces para acessar e tratar dados Conjunto de classes que permite a um programa Java acessar um banco de dados relacional através da linguagem SQL Suportada pela maioria dos SGBDS (Oracle, Microsoft, IBM, etc.). JDBC (Java DataBase Conectivity) é uma API Java que fornece classes e interfaces para acessar e tratar dados Conjunto de classes que permite a um programa Java acessar um banco de dados relacional através da linguagem SQL Suportada pela maioria dos SGBDS (Oracle, Microsoft, IBM, etc.).

17/12/20144 JDBC A API JDBC padroniza: ̶ O mecanismo de como deve ser feito a conexão ao Banco de Dados; ̶ Abordagem para criar consultas ̶ Resultado da consulta Pacote java.sql A API JDBC padroniza: ̶ O mecanismo de como deve ser feito a conexão ao Banco de Dados; ̶ Abordagem para criar consultas ̶ Resultado da consulta Pacote java.sql

17/12/20145 Arquitetura Cógigo Java chama api JDBC JDBC carrega um driver Driver conversa com um banco de dados Podemos ter mais de um driver -> mais de um banco de dados Trocar o banco de dados sem modificar o código da aplicação Cógigo Java chama api JDBC JDBC carrega um driver Driver conversa com um banco de dados Podemos ter mais de um driver -> mais de um banco de dados Trocar o banco de dados sem modificar o código da aplicação

17/12/20146 ODBC ODBC (Open Database Connectivity) é uma API construída em C para acessar bancos de dados. ODBC não é uma API independente de plataforma, sendo patrocinado pela Microsoft. A API JDBC oferece um Driver específico para o padrão ODBC. ODBC (Open Database Connectivity) é uma API construída em C para acessar bancos de dados. ODBC não é uma API independente de plataforma, sendo patrocinado pela Microsoft. A API JDBC oferece um Driver específico para o padrão ODBC.

17/12/20147 java.sql : Classes e Interfaces

17/12/20148 Principais Classes e Interfaces DriverManager Connection Statement PreparedStatement CallableStatement ResultSet SQLException DriverManager Connection Statement PreparedStatement CallableStatement ResultSet SQLException

17/12/20149 DriverManager Utilizado para estabelecer uma conexão entre o driver apropriado e o BD Métodos ̶ public static Connection getConnection (String url) throws SQLException ̶ onde: url = database url (do tipo jdbc:subprotocol:subname) ̶ Inicia uma conexão ao banco e retorna um objeto Connection Utilizado para estabelecer uma conexão entre o driver apropriado e o BD Métodos ̶ public static Connection getConnection (String url) throws SQLException ̶ onde: url = database url (do tipo jdbc:subprotocol:subname) ̶ Inicia uma conexão ao banco e retorna um objeto Connection

17/12/ DriverManager Exemplo: ̶ Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/mytes t?user=test master&password=1234"); Exemplo: ̶ Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/mytes t?user=test master&password=1234");

17/12/ DriverManager String de conexão: ̶ jdbc:mysql://host:porta/banc odedados?propriedade1=valo r1&propriedade2=valor2... String de conexão: ̶ jdbc:mysql://host:porta/banc odedados?propriedade1=valo r1&propriedade2=valor2...

17/12/ Connection Representa uma conexão com um BD específico ̶ Comandos SQL são executados e resultados são retornados ̶ Aspectos de transações são tratados (commit,etc) ̶ Descrição do BD pode ser obtida (metadados) Métodos ̶ public Statement createStatement() throws SQLException ̶ Cria um objeto com uma instrução SQL para futura execução Representa uma conexão com um BD específico ̶ Comandos SQL são executados e resultados são retornados ̶ Aspectos de transações são tratados (commit,etc) ̶ Descrição do BD pode ser obtida (metadados) Métodos ̶ public Statement createStatement() throws SQLException ̶ Cria um objeto com uma instrução SQL para futura execução

17/12/ Connection Métodos public void close() throws SQLException ̶ Fecha a conexão atual public void commit() throws SQLException ̶ Confirma a transação public void rollback() throws SQLException ̶ Cancela a transação public void close() throws SQLException ̶ Fecha a conexão atual public void commit() throws SQLException ̶ Confirma a transação public void rollback() throws SQLException ̶ Cancela a transação

17/12/ Connection Exemplo ̶ Statement stmt = conn.createStatement(); Necessário antes de executar qualquer comando SQL Exemplo ̶ Statement stmt = conn.createStatement(); Necessário antes de executar qualquer comando SQL

17/12/ Statement Utilizado para enviar comandos SQL simples Métodos ̶ public ResultSet executeQuery (String sql) throws SQLException Executa a consulta SQL e retorna um objeto ResultSet com o resultado da consulta Utilizado para enviar comandos SQL simples Métodos ̶ public ResultSet executeQuery (String sql) throws SQLException Executa a consulta SQL e retorna um objeto ResultSet com o resultado da consulta

17/12/ Statement Métodos public int execute(String sql) throws SQLException ̶ Executa instruções INSERT, UPDATE ou DELETE especificada em SQL public void cancel() throws SQLException ̶ Cancela uma instrução SQL que esteja sendo executada public int execute(String sql) throws SQLException ̶ Executa instruções INSERT, UPDATE ou DELETE especificada em SQL public void cancel() throws SQLException ̶ Cancela uma instrução SQL que esteja sendo executada

17/12/ PreparedStatement Utilizado para enviar comandos SQL que recebam um ou mais parâmetros como entrada Eficiência: pré-compilação e armazenamento Utilizado para enviar comandos SQL que recebam um ou mais parâmetros como entrada Eficiência: pré-compilação e armazenamento

17/12/ PreparedStatement Métodos public ResultSet executeQuery (String sql) throws SQLException ̶ Executa a consulta SQL passada em SQL e retorna um objeto ResultSet com o resultado da consulta PreparedStatement stmt; ResultSet rs = stmt.executeQuery("SELECT * FROM phones") public ResultSet executeQuery (String sql) throws SQLException ̶ Executa a consulta SQL passada em SQL e retorna um objeto ResultSet com o resultado da consulta PreparedStatement stmt; ResultSet rs = stmt.executeQuery("SELECT * FROM phones")

17/12/ PreparedStatement Métodos public int executeUpdate() throws SQLException ̶ Usado para efetuar atualizações em um banco de dados como a criação de tabelas (CREATE), alterações (UPDATE) ou exclusão (DELETE) de registros, etc. public setInt(int indice, int valor) public setBoolean(int indice, boolean valor) ̶ Usado para configurar os parâmetros de um código SQL public int executeUpdate() throws SQLException ̶ Usado para efetuar atualizações em um banco de dados como a criação de tabelas (CREATE), alterações (UPDATE) ou exclusão (DELETE) de registros, etc. public setInt(int indice, int valor) public setBoolean(int indice, boolean valor) ̶ Usado para configurar os parâmetros de um código SQL

17/12/ PreparedStatement Prepared Statements são usados por consultas que são realizadas muitas vezes. Eles são interpretados somente uma vez (pré-compilados). Parâmetros: ̶ setString(i, value), setInt(i, value), etc. ̶ o parâmetro i (ponto de interrogação) receberá o valor definido em value Prepared Statements são usados por consultas que são realizadas muitas vezes. Eles são interpretados somente uma vez (pré-compilados). Parâmetros: ̶ setString(i, value), setInt(i, value), etc. ̶ o parâmetro i (ponto de interrogação) receberá o valor definido em value

17/12/ Consulta com PreparedStatement String queryStr = "SELECT * FROM Program " + "WHERE Name = ? and Cost < ?”; PreparedStatement pstmt = con.prepareStatement(queryStr); pstmt.setString(1, “xxxxxxxx”); pstmt.setInt(2, 1000); ResultSet rs = pstmt.executeQuery(); String queryStr = "SELECT * FROM Program " + "WHERE Name = ? and Cost < ?”; PreparedStatement pstmt = con.prepareStatement(queryStr); pstmt.setString(1, “xxxxxxxx”); pstmt.setInt(2, 1000); ResultSet rs = pstmt.executeQuery();

17/12/ Deleção com PreparedStatement String deleteStr = “DELETE FROM Program " + "WHERE Name = ? and Cost < ?”; PreparedStatement pstmt = con.prepareStatement(deleteStr); pstmt.setString(1, “XXXXXXXX”); pstmt.setInt(2, 1000); int delnum = pstmt.executeUpdate(); String deleteStr = “DELETE FROM Program " + "WHERE Name = ? and Cost < ?”; PreparedStatement pstmt = con.prepareStatement(deleteStr); pstmt.setString(1, “XXXXXXXX”); pstmt.setInt(2, 1000); int delnum = pstmt.executeUpdate();

17/12/ ResultSet Utilizado para realizar as consultas no BD Objeto com as linhas que satisfazem as condições do comando SQL. Fornece acesso aos dados destes registros Métodos ̶ public boolean next() Move para o próximo registro do ResultSet Utilizado para realizar as consultas no BD Objeto com as linhas que satisfazem as condições do comando SQL. Fornece acesso aos dados destes registros Métodos ̶ public boolean next() Move para o próximo registro do ResultSet

17/12/ ResultSet Métodos Métodos para obter o valor apropriado de cada coluna: ̶ getInt(int col) ou (String col) ̶ getBoolean(int col) ou (String col) ̶ getString(int col) ou (String col) ̶ getByte(int col) ou String col) Métodos para obter o valor apropriado de cada coluna: ̶ getInt(int col) ou (String col) ̶ getBoolean(int col) ou (String col) ̶ getString(int col) ou (String col) ̶ getByte(int col) ou String col)

17/12/ SQLException É a classe utilizada para tratar as possíveis exceções que podem ser geradas quando se acessa um Banco de Dados. Métodos ̶ public int getErrorCode() ̶ Obtém o código de erro específico do fabricante do BD ̶ try { ̶ } ̶ catch(SQLException e){ } É a classe utilizada para tratar as possíveis exceções que podem ser geradas quando se acessa um Banco de Dados. Métodos ̶ public int getErrorCode() ̶ Obtém o código de erro específico do fabricante do BD ̶ try { ̶ } ̶ catch(SQLException e){ }

17/12/ SETE PASSOS BÁSICOS PARA USAR O JDBC 1. Carregar o driver 2. Definir a URL de Conexão 3. Estabelecer a Conexão 4. Criar um objeto Statement 5. Executar a Consulta 6. Processar os Resultados 7. Fechar a Conexão 1. Carregar o driver 2. Definir a URL de Conexão 3. Estabelecer a Conexão 4. Criar um objeto Statement 5. Executar a Consulta 6. Processar os Resultados 7. Fechar a Conexão

17/12/ Usando o JDBC 1. Carregar o driver try { Class.forName("com.mysql.jdbc.Driver") ;... } catch(ClassNotFoundException e) {...} 1. Carregar o driver try { Class.forName("com.mysql.jdbc.Driver") ;... } catch(ClassNotFoundException e) {...}

17/12/ Usando o JDBC 2. Definir a URL de Conexão String URL = "jdbc:mysql://localhost:3306/ JavaJdbc"; 2. Definir a URL de Conexão String URL = "jdbc:mysql://localhost:3306/ JavaJdbc";

17/12/ Usando o JDBC Estabelecer a conexão String user= “abc”; String password = “secret”; Connection connection = DriverManager.getConnection(URL, user,password); Estabelecer a conexão String user= “abc”; String password = “secret”; Connection connection = DriverManager.getConnection(URL, user,password);

17/12/ Usando o JDBC 4. Criar um objeto Statement Statement statement = connection.createStatement(); 4. Criar um objeto Statement Statement statement = connection.createStatement();

17/12/ Usando o JDBC 5. Executar a Consulta: String query = “SELECT col1, col2, col3 FROM tabela”; ResultSet resultSet = statement.executeQuery(query); Para modificar os dados, utilizar executeUpdate ou execute com UPDATE, INSERT ou DELETE 5. Executar a Consulta: String query = “SELECT col1, col2, col3 FROM tabela”; ResultSet resultSet = statement.executeQuery(query); Para modificar os dados, utilizar executeUpdate ou execute com UPDATE, INSERT ou DELETE

17/12/ Usando o JDBC 6. Processar os Resultados while(resultSet.next()) { System.out.println(resultSet. getString(1)+ “” + resultSet.getString(2)+ “” + resultSet.getInt(3)); } A primeira coluna tem índice 1 6. Processar os Resultados while(resultSet.next()) { System.out.println(resultSet. getString(1)+ “” + resultSet.getString(2)+ “” + resultSet.getInt(3)); } A primeira coluna tem índice 1

17/12/ Usando o JDBC 7. Fechar a Conexão connection.close(); Abrir e fechar conexão é um recurso que consome muito da máquina; 7. Fechar a Conexão connection.close(); Abrir e fechar conexão é um recurso que consome muito da máquina;

Exemplo Completo com MySQL 17/12/201434

17/12/ Aplicação Java import java.sql.*; public class ExemploJdbc { public static final String URL = "jdbc:mysql://localhost:3306/BdTeste"; public static final String DRIVER_NAME = “com.mysql.jdbc.Driver"; public static final String USER = “root"; public static final String PASSWD = “”; import java.sql.*; public class ExemploJdbc { public static final String URL = "jdbc:mysql://localhost:3306/BdTeste"; public static final String DRIVER_NAME = “com.mysql.jdbc.Driver"; public static final String USER = “root"; public static final String PASSWD = “”;

17/12/ Aplicação Java (Continuação) public static void main(String args[]) { try { Class.forName(DRIVER_NAME); Connection conexao = DriverManager.getConnection(URL, USER, PASSWD); Statement stmt = conexao.createStatement(); ResultSet rs = stmt.executeQuery("SELECT NOME, TELEFONE FROM CONSUMIDOR"); public static void main(String args[]) { try { Class.forName(DRIVER_NAME); Connection conexao = DriverManager.getConnection(URL, USER, PASSWD); Statement stmt = conexao.createStatement(); ResultSet rs = stmt.executeQuery("SELECT NOME, TELEFONE FROM CONSUMIDOR");

37 Aplicação Java (Continuação) while(rs.next()) { System.out.println ("-- >"+rs.getString("nome") + " -->" + rs.getString("telefone")); } } catch (SQLException ex) { System.err.println ("SQLException: " + ex.getMessage()); } catch(ClassNotFoundException e){ System.err.println("Nao pode carregar o driver" + e.getMessage()); } } // fecha o try } // fecha a classe while(rs.next()) { System.out.println ("-- >"+rs.getString("nome") + " -->" + rs.getString("telefone")); } } catch (SQLException ex) { System.err.println ("SQLException: " + ex.getMessage()); } catch(ClassNotFoundException e){ System.err.println("Nao pode carregar o driver" + e.getMessage()); } } // fecha o try } // fecha a classe

17/12/ Atualizando o BD Utiliza-se o método executeUpdate() quando se deseja inserir, alterar ou excluir registros try { Statement stmt = conexao.createStatement(); String sqlString=“DELETE FROM TABELA” stmt.executeUpdate(sqlString); } catch (SQLException e) {...} Utiliza-se o método executeUpdate() quando se deseja inserir, alterar ou excluir registros try { Statement stmt = conexao.createStatement(); String sqlString=“DELETE FROM TABELA” stmt.executeUpdate(sqlString); } catch (SQLException e) {...}

Exercício & Recomendações

Exercício Testar o programa ExemploJdbc apresentado nos slides anteriores Não esquecer de: ̶ Criar o Banco de Dados no MySQL Nome: BdTeste Tabela: Consumidor Campos: id_consumidor, nome, telefone ̶ Inserir informações na Tabela Consumidor Testar o programa ExemploJdbc apresentado nos slides anteriores Não esquecer de: ̶ Criar o Banco de Dados no MySQL Nome: BdTeste Tabela: Consumidor Campos: id_consumidor, nome, telefone ̶ Inserir informações na Tabela Consumidor 17/12/201440

17/12/ Configurar no Eclipse Download do driver Jdbc Tipo 4 (mysql-connector-java betabin.jar) no portal Adicionar o driver ao eclipse. Ver no portal material de como configurar eclipse + mysql Download do driver Jdbc Tipo 4 (mysql-connector-java betabin.jar) no portal Adicionar o driver ao eclipse. Ver no portal material de como configurar eclipse + mysql