Java Conexão com Banco de Dados

Slides:



Advertisements
Apresentações semelhantes
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Advertisements

Aula 3 – DB2 Express-C Autor:
JDBC Java Dababase Connectivity Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
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
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
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
Material III-Bimestre Wagner Santos C. de Jesus
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.
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.
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]
XIV Jornada de Cursos .NET com C# Antônio Carlos Bruno Inojosa.
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Integração com Banco de Dados
Aplicativos Comerciais para Internet Camada View do MVC Apresentando os resultados de uma Consulta.
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
Interface Gráfica (material da Profa. Luciana Nedel - www. inf. pucrs
P ROGRAMAÇÃO Prof.: Bruno Rafael de Oliveira Rodrigues.
XIII Jornada de Cursos .NET com C# Lucas Mello Flávio Almeida.
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.
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
Configuração do Ambiente de programação
Capítulo 6 Exceções.
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.
Bruno Inojosa MCP.NET Framework.NET com C#. SQL Básico.
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
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.
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 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 Banco de Dados Alex Coelho

Introdução funcionalidade primordial em qualquer sistema; “é a habilidade para comunicar-se com um repositório de dados”. A Linguagem Java possui uma Application Programming Interface (API) que possibilita o acesso a BDs; um modelo de conexão uniforme; API é a Java DataBase Connectivity (JDBC)

JDBC O que é a JDBC? consiste em uma biblioteca; implementada em Java; disponibiliza classes e interfaces para o acesso ao banco de dados; Para cada banco de dados existe uma implementação: Drives, no caso interfaces que devem ser implementadas; São interfaces porque levam em considerações particularidades;

Tipos de JDBC JDBC-ODBC: Também conhecido como Ponto JDBC-ODBC; restrito à plataforma Windows; utiliza ODBC para conectar-se com o banco de dados; converte métodos JDBC em chamadas às funções do ODBC; geralmente é usado quando não há um driver “puro-java”;

Tipos de JDBC Driver API-Nativo: traduzir as chamadas realizadas com o JDBC para realizadas com a API cliente do banco de dados utilizado; Funciona +- como a JDBC-ODBC; pode ser que sejam necessários que outras soluções;

Tipos JDBC Driver de Protocolo de Rede: Converte a chamada por meio do JDBC para um protocolo de rede; Independe do banco de dados que está sendo utilizado; devido ao fato de se utilizar de protocolos que não se prendem a um determinado banco de dados; modelo de conexão mais flexível e abrangente;

Tipos JDBC Driver nativo: converte as chamadas JDBC diretamente no protocolo do banco de dados; é implementado na linguagem Java; normalmente independe de plataforma; escrito pelos próprios desenvolvedores; muito flexível; tipo mais recomendado para ser usado e mais utilizado no mercado;

Pacote java.sql fornece a API para acesso e processamento de dados; geralmente acessa uma base de dados relacional; principais classes e interfaces: DriverManager, responsável por criar uma conexão com o banco de dados; Connection, classe responsável por manter uma conexão aberta com o banco; Statement, gerencia e executa instruções SQL; PreparedStatement, gerencia e executa instruções SQL, permitindo também a passagem de parâmetros em uma instrução; ResultSet, responsável por receber os dados obtidos em uma pesquisa ao banco.

DriverManager responsável pelo gerenciamento de drivers JDBC; estabelece conexões a bancos de dados; // Carregando um driver em tempo de execução Class.forName("org.gjt.mm.mysql.Driver"); // Tentando estabelecer conexão com o Banco de Dados Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/aula? autoReconnect=true", "conta","senha"); retorna uma implementação para a interface Connection;

Connection representa a conexão com o banco de dados; proporcionar informações sobre as tabelas do banco através de transações; métodos desta interface freqüentemente utilizados (SUN, 2007): commit(), executa todas as alterações feitas com o banco de dados pela atual transação. rollback(), desfaz qualquer alteração feita com o banco de dados pela atual transação. close(), libera o recurso que estava sendo utilizado pelo objeto. Se preocupa em como o banco irá se comportar;

Statement Implementação de uma Interface que fornece métodos para executar uma instrução SQL; Não aceita a passagem de parâmetros; principais métodos da Interface Statement são (SUN, 2007): executeUpdate(), executa instruções SQL do tipo: INSERT, UPDATE e DELETE; execute(), executa instruções SQL de busca de dados do tipo SELECT; close(), libera o recurso que estava sendo utilizado pelo objeto. // Instanciando o objeto statement (stmt) Statement stmt = conn.createStatement(); // Executando uma instrução SQL. stmt.executeUpdate(“INSERT INTO ALUNO VALUES (1, ‘Pedro da Silva’)”);

PreparedStatement A interface PreparedStatement possui todos os recursos da interface Statement; acrescentando a utilização de parâmetros em uma instrução SQL; métodos da interface PreparedStatement são (SUN, 2007): execute(), consolida a instrução SQL informada; setDate(), método utilizado para atribuir um valor do tipo Data; setInt(), utilizado para atribuir valores do tipo inteiro; setString(), método utilizado para atribuir valores do tipo Alfa Numéricos.

PreparedStatement // Instanciando o objeto preparedStatement (pstmt) conn.prepareStatement("UPDATE ALUNO SET NOME = ?"); // Setando o valor ao parâmetro pstmt.setString(1, “MARIA RITA”);

ResultSet Esta interface permite o recebimento e gerenciamento do conjunto de dados resultante de uma consulta SQL; métodos capazes de acessar os dados; métodos desta interface freqüentemente utilizados (SUN, 2007): next(), move o cursor para a próxima linha de dados, já que o conjunto de dados retornados pela consulta SQL é armazenado como em uma lista. close(), libera o recurso que estava sendo utilizado pelo objeto. getString(String columnName), recupera o valor da coluna informada como parâmetro, da linha atual do conjunto de dados recebidos pelo objeto ResultSet.

ResultSet //Recebendo o conjunto de dados da consulta SQL ResultSet rs = stmt.executeQuery("SELECT id, nome FROM ALUNO"); // Se houver resultados, posiciona-se o cursor na próxima linha de dados while (rs.next()) { // Recuperando os dados retornados pela consulta SQL int id = rs.getInt("id"); String nome = rs.getString("nome"); } métodos como o getInt(), getString() para recuperar os valores;

Exemplo import java.awt.Frame; import java.awt.List; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Aula { private Connection conn; private PreparedStatement pstmt; private Statement stmt; private ResultSet rs;

Exemplo public void open() { try { Class.forName("org.gjt.mm.mysql.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost/aula04?autoReconnect=true", "root", ""); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { }

Exemplo public void close() { try { if (stmt != null) stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); }

Exemplo public void inserir(){ try { // Abrindo a conexão com o banco open(); // Instanciando o objeto statement (stmt) stmt = conn.createStatement(); // Executando uma instrução SQL. stmt.executeUpdate( "INSERT INTO ALUNO VALUES (1, 'Pedro da Silva')"); // Fechando a conexão com o banco close(); } catch (SQLException e) { e.printStackTrace(); }

Exemplo public void alterar(){ try { // Abrindo a conexão com o banco open(); // Instanciando o objeto preparedStatement (pstmt) pstmt = conn.prepareStatement("UPDATE ALUNO SET NOME = ? Where id = 1"); // Setando o valor ao parâmetro pstmt.setString(1, "MARIA RITA"); // Fechando a conexão com o banco pstmt.execute(); close(); } catch (SQLException e) { e.printStackTrace(); }

Exemplo public ResultSet buscarAlunos(){ try { open(); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT id, nome FROM ALUNO"); return rs; } catch (SQLException e) { close(); e.printStackTrace(); } return null;

Exemplo public void imprimirAlunos() throws SQLException{ JTextArea output = new JTextArea(20,30); Banco aula = new Banco(); aula.rs = aula.buscarAlunos(); while (aula.rs.next()){ output.setText("Id: " + aula.rs.getInt("id") + " - " + "Nome: " + aula.rs.getString("nome")+"\n"); } JFrame janela = new JFrame("Janela"); janela.setLocation(300, 300); janela.setSize(300, 300); janela.add(new JScrollPane(output)); janela.setVisible(true);

Exemplo public static void main(String[] args ){ Aula aula = new Aula(); aula.inserir(); aula.alterar(); aula.rs = aula.buscarAlunos(); try { aula.imprimirAlunos(); } catch (SQLException e) { e.printStackTrace(); }

Referências DEITEL, Harvey M. Java: como programar. 6 ed. São Paulo: Pearson Prentice Hall, 2005. THOMPSON, Marco Aurélio. Java 2 & banco de dados. São Paulo: Érica, 2002. SUN, MicroSystem. Java Technology. Disponivel em http://java.sun.com. Acessado em 12/10/2007.