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



Documentos relacionados
Aula 1 Acesso a Banco de Dados

Integrando Java com Banco de Dados

Programação Orientada a Objetos JDBC Java Database Connectivity

Programação com Acesso a Banco de Dados

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

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

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

Desenvolvimento Web TCC Turma A-1

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

Orientação a Objetos

Acesso a Bancos de Dados em Java (JDBC)

JAVA JDBC Java Database Connectivity

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

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

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

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

Figura 1. A Classe Java

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.

JDBC Java Database Connectivity

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

Programação Orientada a Objetos (DPADF 0063)

Acessando bancos de dados com o JDBC

Java e Conexão com Banco de Dados

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

JDBC Acessando Banco de Dados

Banco de Dados. Prof. Leonardo Barreto Campos 1

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

Programação em Rede JDBC

Conectividade de Banco de Dados Java JDBC

Leonardo Gresta Paulino Murta

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

Linguagens de Programação

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

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

(UFF) JDBC (I) TEPIS II

JDBC. Prof. Márcio Bueno

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

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

Acessando dados em Java com JDBC

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

Java 2 Standard Edition Fundamentos de

JDBC. Java DataBase Connectivity

Aula 4 JDBC - Java Database Connectivity

Java na WEB Banco de Dados

Desenvolvimento de Sistemas de Informação

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

Android e Bancos de Dados

Acesso a banco de dados

Especialização em web com interfaces ricas

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

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

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Desenvolvimento de Aplicações para Internet Aula 9

Persistência de Classes em Tabelas de Banco de Dados

Programação Orientada a Objetos II

1.2- Ambientes de Middleware

Acesso a Bancos de Dados (JDBC) Desenvolvimento de Aplicações em Java O QUE É JDBC JAVA E JDBC CARACTERÍSTICAS DE JDBC

Prof. Marcelo Heitor Teixeira marceloheitor.com. Java API JDBC

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

JPA: Persistência padronizada em Java

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Prática Sobre Servlets e JSP

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

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

JDBC - Java Data Base Connectivity

Execução de Instruções SQL

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

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Documentação Usando o Javadoc

Programação com Acesso a BD. Programação com OO Acesso em Java

Solutions for Information Technologies. BIS-Navegador. Manual de Instalação para Microsoft SQL Server

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Curso: Desenvolvimento Java

Noções de. Microsoft SQL Server. Microsoft SQL Server

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Front-End Uso da Linguagem Turbo Delphi para Acesso ao Banco de Dados Mysql

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Acessando um Banco de Dados

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

Solutions for Information Technologies. BIS-Navegador. IBM DB2 UDB v8.x

Solutions for Information Technologies. BIS-Navegador. Oracle

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

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

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

Java com Banco de Dados Posgree

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

LINGUAGEM DE BANCO DE DADOS

Especificação do 3º Trabalho

Daniel Filype Silva Barreto Márcio Sérgio Soares Austregésilo

EXERCÍCIOS PRÁTICOS. Banco de Dados

(UFF) JDBC (II) TEPIS II

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Transcrição:

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

Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores uma interface de acesso à banco de dados Os detalhes são deixados para os respectivos drivers, ou seja, a especificidade de acesso a cada banco é deixado a cargo do driver Objetivos Fornecer uma API que permita a execução de comandos SQL Deve ser baseada na experiência de outras APIs já existentes Deve ser simples

JDBC É o pacote Java para a manipulação de BDs Sua principal vantagem é a independência de plataforma e de software JDBC utiliza SQL para o acesso aos dados Se forem usados apenas elementos do SQL padrão é possível substituir toda a base de dados sem alterações críticas no programa JDBC foi baseado no ODBC da Microsoft

JDBC e SQL Através de JDBC é possível utilizar comandos SQL para definição, manipulação e controle de dados Para executar comandos SQL é preciso: Criar um Statement para envio de instruções Enviar os comandos com um dos vários métodos para envio dos comandos

Estrutura JDBC Aplicação Java JDBC Driver Manager Ponte JDBC/ODBC JDBC Driver ODBC Driver BD

Arquitetura

Drivers JDBC A Sun define quatro tipos de drivers: Tipo 1: são drivers que fazem a ligação(ponte) entre JDBC e ODBC. Tipo 2: são drivers escritos parte em Java e parte em uma linguagem de programação nativa. Tipo 3: são classes Java que usam protocolo independente e fazem requisições para um servidor. Tipo 4: são classes Java que se comunicam diretamente com a base de dados

Uso do JDBC Para usar o JDBC deve-se: Criar uma base de dados (SGBD) Carregar o driver adequado Definir uma URL de conexão Estabelecer uma conexão com a base de dados Enviar instruções SQL (com Statements) Processar o resultado Fechar a conexão

Criando uma Base de Dados Cada SGBD tem suas próprias ferramentas para criação de Bases de Dados Por exemplo no MySQL você pode usar o MySQL Workbench Create new schema

Carregando Drivers Todo driver JDBC tem uma classe que o representa Para carregar um driver deve-se carregar esta classe. Existem duas formas: Class.forName: carrega a classe indicada e registra-a como driver (mais usual) registerdriver: método de DriverManager que registra o driver. Neste caso deve-se antes carregar o driver através da criação de um objeto da classe correspondente

Definindo a Conexão O próximo passo é a criação de uma conexão entre o driver e a base de dados Para criar a conexão é necessário especificar a localização (URL) do BD: Protocolo: sempre iniciam com jdbc: seguido do protocolo de acordo com o SGBD O nome do host, caso a conexão seja remota A porta de comunicação, se existir O nome da base de dados Exemplo de URL com mysql jdbc:mysql://localhost:3306/meubanco

Estabelecendo a Conexão Para estabelecer a conexão deve-se criar um objeto Connection através de um dos três métodos getconnection de DriverManager Este método recebe três parâmetros: a string de conexão (URL), o nome do usuário e a senha, caso existam

Criando Statements Para criar este objeto usa-se os comandos createstatement ou preparestatement do objeto Connection: Statement createstatement() Quando não há parametros PreparedStatement preparestatement(string) quando existem parâmetros

Criando Statements Para criar este objeto usa-se os comandos createstatement ou preparestatement do objeto Connection: Statement createstatement() Quando não há parametros PreparedStatement preparestatement(string) quando existem parâmetros http://www.devmedia.com.br/sql-injection-em-ambientes-web/9733

Executando Comandos SQL Para enviar comandos SQL devemos utilizar um dos métodos do objeto: boolean execute (String SQL) executa um SQL que pode retornar mais de um resultado int executeupdate (String SQL) executa SQLs que retornam valores inteiros, como INSERT, UPDATE, DELETE ou que não retornam nada como CREATE TABLE e DROP TABLE ResultSet executequery(string SQL) executa pesquisas SQL através do comando SELECT

Criando e Excluindo Tabelas Para criar uma tabela deve-se utilizar o método executeupdate Este método retorna o número de linhas para INSERT, UPDATE e DELETE ou zero para outras instruções Para criar uma tabela: stm.executeupdate( create table... ); Para excluir uma tabela: stm.executeupdate( drop table nome );

Manipulando Dados Para acessar os dados de uma tabela também se usa o método executeupdate Para inserir dados usa-se o SQL INSERT INTO: stm.executeupdate( INSERT INTO... ); Para atualizar usa-se UPDATE... SET stm.executeupdate( UPDATE... SET... ); Para eliminar usa-se o DELETE FROM: stm.executeupdate( DELETE... FROM );

Pesquisando A pesquisa de dados envolve o método executequery e o SQL SELECT Este método retorna um objeto do tipo Resultset que contém as linhas e colunas que satisfazem a string de busca Para navegar pelas linhas usa-se next() Para acessar um certo valor usam-se os comandos getxxx que recebem o nome da coluna ou o número de ordem

Tratando Exceções A maioria dos métodos JDBC dispara a exceção SQLException Esta exceção possui métodos que retornam informações adicionais sobre o erro: String getsqlstate() retorna uma string com o SQLState formatado int geterrorcode() retorna o código de erro específico SQLException getnextexception() recupera a próxima exceção

Passos para Acessar o Oracle Criar um data source usando a classe OracleDataSource Ex: OracleDataSource ds = new OracleDataSource(); Parâmetros importantes a serem definidos no objeto OracleDataSource URL da conexão: ds.seturl("jdbc:oracle:thin:@localhost"); Usuário: ds.setuser("system"); Senha: ds.setpassword("senha123"); Instanciar um objeto da classe Connection usando o método getconnection do data source Criar um obeto da classe Statement que irá tratar os comandos SQL Executar o comando SQL colocando o resultado em um objeto da classe ResultSet

Conexão com BD O primeiro passo é instalar o JDBC para o banco que será utilizado o No caso do Oracle, a biblioteca do JDBC é instalada juntamente com o SGBD o Dois arquivos são necessários C:\oraclexe\app\oracle\product\10.2.0\server\jlib\orai8n.jar C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib\ojdbc14.j ar o Os diretórios de onde se encontram os arquivos.jar devem ser especificados na variável de sistema CLASSPATH Outra possibilidade é fornecer o caminho dos arquivos no momento da compilação o javac classpath C:\oraclexe\app\oracle\... arquivo.java

Para quem usa o Eclipse

Classes Importadas java.sql.connection usada para representar uma conexão por onde serão enviados os comandos SQL java.sql.resultset usada para receber o resultado de um comando SQL java.slq.sqlexception para tratar as exceções que possam ocorrer na execução de um comando SQL Java.sql.Statement usado para manipular os comandos SQL e solicitar a sua execução oracle.jdbc.pool.oracledatasource factory que manipula as conexões

Exemplo

Acesso com MySQL Adicione a biblioteca JDBC do MySQL ao seu projeto

Exemplo

Exemplo (cont.)

Instruções Pré-Compiladas Cada instrução SQL enviada para o SGBD é compilada e executada Para instruções subseqüentes é realizada uma verificação no SGBD para identificar se ela já foi executada recentemente Como muitas instruções são semelhantes é mais eficiente utilizar instruções parametrizadas chamadas de PreparedStatements.

Usando PreparedStatements Para criar uma instrução pré-compilada devese utilizar o método preparestatement que retorna um PreparedStatement Este método recebe uma instrução SQL com? para indicar os parâmetros Antes de executar um PreparedStatement deve-se passar os parâmetros com setxxx Estas instruções recebem o índice e o valor do parâmetro a ser executado

Usando PreparedStatements Existem instruções setxxx para os principais tipos de dados Para executar um PreparedStatement usam-se os métodos execute, executeupdate e executequery sem parâmetros Caso seja necessário limpar os parâmetros atuais deve-se usar o método clearparameters: void clearparameters()

Referências Slides do Prof. Omar Carmona Slides do Prof. Elton R. C. Spode http://www.inf.unifra.br/~espode Artigo sobre SQL Injection http://www.devmedia.com.br/sql-injection-emambientes-web/9733