JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

Documentos relacionados
De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 9- Introdução ao JDBC

Programação Orientada a Objetos II

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Programação com Acesso a Banco de Dados

TECNOLOGIAS DE ACESSO A BASES DE DADOS. Profª Ana Paula Cação Maio de 2018

CONEXÃO JAVA - BANCO DE DADOS

Java DataBase Connectivity - JDBC. Ramon Lopes Embaixador de Campus Sun - UFBA

UFG - Instituto de Informática

Desenvolvimento Web TCC Turma A-1

Acesso a Bancos de Dados em Java (JDBC)

Acessando dados em Java com JDBC

1.2- Ambientes de Middleware

Java e Conexão com Banco de Dados

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Programação Orientada a Objetos JDBC Java Database Connectivity

Aula 1 Acesso a Banco de Dados

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Integrando Java com Banco de Dados

Leonardo Gresta Paulino Murta

JDBC. Java DataBase Connectivity

Conexão do Banco de Dados localhost

Banco de Dados. Banco de Dados

Java - Conexão ao Banco de Dados usando JDBC

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

Manipulação de Banco de Dados com Java 1. Objetivos

Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais

Persistência BD / drivers

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

PERSISTÊNCIA EM JAVA. Introdução. Conexão a banco de dados através do driver JDBC UNIDADEE

JAVA JDBC Java Database Connectivity

JDBC. Prof. Márcio Bueno

Java Básico JDBC. Razer Anthom Nizer Rojas Montaño Banco de Dados: JDBC

Programação Orientada a Objetos (DPADF 0063)

JDBC Acessando Banco de Dados

API JDBC. Paulo Ricardo Lisboa de Almeida. 1 Universidade Positivo

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316

Como criar um banco de dados usando o mysql

DATA ACCESS OBJECT (DAO)

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

JDBC - Java Data Base Connectivity

Acesso a banco de dados

BD II (SI 587) Programação SQL. Prof. Josenildo Silva.

Projeto Final Curso de Java Básico

Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Departamento de Computação Curso de Análise e Desenvolvimento de Sistemas Modelagem Conceitual de Dados

Acesso a Bancos de Dados (JDBC) Autor: Cleyton Maciel (clayton.maciel@ifrn.edu.br) Adaptação: Pedro Baesse (pedro.baesse@ifrn.edu.

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Aula Prática JBCD - Introdução

Lidando com Armazenamento de Dados

Desenvolvimento de Sistemas de Informação

Acessando bancos de dados com o JDBC

Introdução à Tecnologia Java 02/2012. Java Aula 05 12/09/2012. Celso Olivete Júnior.

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

Banco de Dados. Prof. Leonardo Barreto Campos 1

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Curso: Desenvolvimento Java

Exercícios de fixação: Listas

Conectividade de Banco de Dados Java JDBC

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Linguagens de Programação

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

Driver JDBC Para Consultas em Bancos de Dados Distribuídos e Fragmentados Horizontalmente

Proposta de calendário - Comissão Permanente de Ensino

JPA: Persistência padronizada em Java

Programação em Rede JDBC

Administração de Sistemas Operacionais. Prof. Marlon Marcon

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br

(UFF) JDBC (I) TEPIS II

PRDS /01/2013. Ricardo A. Venieris Rodnei Couto

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

Persistência de Classes em Tabelas de Banco de Dados

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

Desenvolvimento de Aplicaçõ. ções em Java

Aula Prática 2 BD PostgreSQL. Profa. Elaine Faria UFU

Escrito por Lisiane Batista Neitzke Sex, 14 de Outubro de :57 - Última atualização Qua, 25 de Junho de :18

Aula 06 Sistemas Embarcados LT38C

JDBC (Fundamentos) Sang Shin Java Technology Architect Sun Microsystems, Inc.

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Componentes ADO e o Acesso ao Banco de Dados

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S

Programação Orientada a Objetos II

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

Triggers(Gatilhos) Tiago Alves de Oliveira

Desenvolvimento Web com Struts

Transcrição:

Ciência da Computação GBC043 Sistemas de Banco de Dados Java Database Connectivity JDBC PostgreSQL JDBC Diferentes SGBD possuem diferentes formas de se comunicar com uma aplicação Aplicação Java Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B -sala 1B137 Oracle MySQL PostgreSQL 1 semestre de 2018 Necessidade de aprendizado de várias APIs GBC043 Sistemas de Banco de Dados -1 semestre de 2018 2 JDBC JDBC - Arquitetura Solução: Aplicação Java API do JDBC O JBDC provê um conjunto de interfaces para acesso ao BD é um conjunto de APIs (bibliotecas de classes) Cada SGBD possui um Driver JDBC específico (que é usado de forma padrão - JDBC) Os drivers de outros fornecedores devem ser adicionados ao CLASSPATH da aplicação para serem utilizados driver JDBC driver JDBC driver JDBC Oracle MySQL PostgreSQL Mudança do driver não afeta a aplicação Os fabricantes de SGBD são responsáveis por disponibilizar os drivers de acesso para suas bases de dados. GBC043 Sistemas de Banco de Dados -1 semestre de 2018 3 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 4 JDBC - Arquitetura java.sql.* fornece classes para serem usadas pelas aplicações O driver JDBC do PostgreSQL é do tipo 4 totalmente implementado em Java conhece todo o protocolo de comunicação com o BD e pode acessar o BD sem software extra JDBC Arquitetura Pacote Java.sql Principais classes do JDBC DriverManager-gerencia o driver e cria uma conexão com o banco de dados Connection-é a classe que representa a conexão com o banco de dados Statement- controla e executa uma sentença SQL PreparedStatement uma subclasse de Statement que controla e executa uma sentença SQL ResultSet-contém o conjunto de dados retornado por uma consulta SQL ResultSetMetaData-é a classe que trata dos metadados do banco GBC043 Sistemas de Banco de Dados -1 semestre de 2018 5 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 6 1

JDBC Arquitetura Pacote Java.sql DriverManager O método DriverManager.getConnection () é chamado para efetuar a conexão com o banco de dados; Connection executeupdate () -utilizados pelos comandos insert, update e delete; executequery () -utilizado para o comando select. Etapas básicas 1. Criar e Popular o banco de dados 2. Carregar Driver 3. Definir URL (ou IP) para a conexão 4. Estabelecer conexão 5. Criar objeto do tipo statement 6. Executar uma consulta 7. Processar resultado 8. Fechar Conexão GBC043 Sistemas de Banco de Dados -1 semestre de 2018 7 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 8 Criando e populando o banco de dados Utilizar o pgadmin III para executar os scripts para a criação do banco de dados para a inserção de dados Obter o Driver do PostgreSQL (postgresql.jar) https://jdbc.postgresql.org/download.html JDBC4 Postgresql Driver, Version 42.1.4 Adicionar o caminho para o arquivo postgresql.jarna configuração do CLASSPATH adicione ao Projetopor meio do item Bibliotecas (Libraries) na paleta Projetos GBC043 Sistemas de Banco de Dados -1 semestre de 2018 9 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 10 Class.forName("org.postgresql.Driver"); System.out.println("Driver carregado!"); catch (ClassNotFoundException cnfe) { System.out.println("Não carregou o driver!"); cnfe.printstacktrace(); Criando uma Conexão Connection conexao = null; String url = "jdbc:postgresql://localhost/postgres"; String username = postgres ; String password = 12345 ; conexao = DriverManager.getConnection(url, username, password); System.out.println("Usuario conectado!"); System.out.println("Nao foi possivel conectar."); GBC043 Sistemas de Banco de Dados -1 semestre de 2018 11 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 12 2

Statement sentenca; // Cria uma sentenca para atualizar o banco de dados sentenca = conexao.createstatement(); // Atualiza o BD sentenca.executeupdate( Create, Insert, Update, Delete, "); PreparedStatement A principal característica de um objeto da classe PreparedStatement é que, ao contrário de objetos da classe Statement, ele recebe uma declaração SQL na hora de sua criação Isto permite que a declaração seja enviada ao SGBD para ser compilada na hora de sua declaração. Como resultado, objetos PreparedStatement contêm declarações pré-compiladas Quando um PreparedStatement é executado, o SGBD pode executar seu comando SQL imediatamente sem ter que compilá-lo primeiro GBC043 Sistemas de Banco de Dados -1 semestre de 2018 13 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 14 PreparedStatement - Exemplo String sql = insert into aluno (matricula, nome, sobrenome) values (?,?,?) ; PreparedStatement st = Conexao.prepareStatement(sql); st.setint(1, mat); st.setstring(2, nome); st.setstring(3, sobrenome); int nroinsercoes = st.executeupdate(); Criando uma Sentença para consultar o BD // Cria uma sentenca para consultar o banco de dados sentenca = conexao.createstatement(); // Consulta o conteudo de uma (ou varias) tabela(s) ResultSet conjresposta = sentenca.executequery( "Select from where"); GBC043 Sistemas de Banco de Dados -1 semestre de 2018 15 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 16 Processando e Exibindo o resultado da consulta ResultSetMetaData metadados = ConjResposta.getMetaData(); int nrodecolunas = metadados.getcolumncount(); System.out.println("Tabela X do Banco de Dados nomebanco:"); for(int i = 1; i <= nrodecolunas; i++) System.out.printf("%-8s\t", metadados.getcolumnname(i)); System.out.println(); //Exibindo o conteudo da tabela X while (conjresposta.next()){ for (int i = 1; i <= nrodecolunas; i++) System.out.printf("%-8s\t", conjresposta.getobject(i)); System.out.println(); GBC043 Sistemas de Banco de Dados -1 semestre de 2018 17 Encerrando a conexão //conexao //consulta e/ou atualizacao finally{ // assegura que a instrucao/conexao e fechada // adequadamente try{ sentenca.close(); conexao.close(); catch(exception exception){ exception.printstacktrace(); GBC043 Sistemas de Banco de Dados -1 semestre de 2018 18 3

Execução de uma stored procedure CallableStatement - Exemplo CallableStatement cs = Conexao.prepareCall( procedure"); cs.setint(1, mat); cs.setstring(2, nome); ResultSet rs = cs.executequery(); Para atender ao requisito de diferentes grupos de usuários Utilize a criação de papéis em SQL (visto na aula sobre SQL DDL) consulte o material sobre visões que tem os dados de permissões do dicionário de dados GBC043 Sistemas de Banco de Dados -1 semestre de 2018 19 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 20 SELECT schemaname,viewname FROM pg_views WHERE viewname LIKE '%priv%'; schemaname viewname --------------------+---------------------- information_schema column_privileges information_schema routine_privileges information_schema table_privileges information_schema udt_privileges information_schema usage_privileges information_schema data_type_privileges (6 registros) GBC043 Sistemas de Banco de Dados -1 semestre de 2018 21 SELECT schemaname,viewname FROM pg_views WHERE viewname LIKE '%rol%'; schemaname viewname --------------------+----------------------------------- pg_catalog pg_roles information_schema applicable_roles information_schema administrable_role_authorizations information_schema enabled_roles information_schema role_column_grants information_schema role_routine_grants information_schema role_table_grants information_schema role_udt_grants information_schema role_usage_grants (9 registros) GBC043 Sistemas de Banco de Dados -1 semestre de 2018 22 Exemplos: SELECT * FROM information_schema.role_table_grants WHERE grantee = current_user; SELECT * FROM information_schema.table_privileges WHERE grantee = current_user; Bibliografia Deitel, H. M. Java: como programar.6 ed. São Paulo: Pearson Prentice Hall, 2005. Material Didático produzido pelo professor Marcelo Z. Nascimento GBC043 Sistemas de Banco de Dados -1 semestre de 2018 23 GBC043 Sistemas de Banco de Dados -1 semestre de 2018 25 4

Leitura complementar para casa Capítulo 25do livro: Deitel, H. M. Java: como programar. Practical PostgreSQL: http://www.commandprompt.com/ppbook/ GBC043 Sistemas de Banco de Dados -1 semestre de 2018 26 5