Leonardo Gresta Paulino Murta leomurta@gmail.com



Documentos relacionados
Desenvolvimento Web TCC Turma A-1

Programação Orientada a Objetos JDBC Java Database Connectivity

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

Integrando Java com Banco de Dados

JDBC. Prof. Márcio Bueno

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

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

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

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

Aula 1 Acesso a Banco de Dados

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

Programação com Acesso a Banco de Dados

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

JDBC Java Database Connectivity

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

Orientação a Objetos

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

Acesso a Bancos de Dados em Java (JDBC)

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

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

Figura 1. A Classe 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

Banco de Dados. Prof. Leonardo Barreto Campos 1

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

Drive MySql de conexão para Eclipse

Acesso a banco de dados

Persistência de Classes em Tabelas de Banco de Dados

Autenticação e Autorização

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

Java na WEB Banco de Dados

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

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

Prática Sobre Servlets e JSP

Padrões de Projeto e Persistência com DAO

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

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

Unidade 9: Middleware JDBC para Criação de Beans

Java e Conexão com Banco de Dados

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

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

C# - Conexão com MySQL

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

JDBC Acessando Banco de Dados

Programação Orientada a Objetos II

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

J550 Integração com Bancos de Dados

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

JAVA JDBC Java Database Connectivity

Programação Orientada a Objetos II

Curso: Desenvolvimento Java

Programação Orientada a Objetos (DPADF 0063)

Persistindo dados com TopLink no NetBeans

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

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

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

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JDBC DRIVER. Objetivo: Possibilitar aplicações não Zim de se conectar a um banco de dados Zim utilizando as normas JDBC.

Acessando dados em Java com JDBC

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

Java Beans e Servlets

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.

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

Desenvolvimento de Aplicações para Internet Aula 9

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

Segurança em Sistemas Web. Addson A. Costa

Transações Seguras em Bancos de Dados (MySQL)

Procedimentos para Instalação do SISLOC

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Linguagens de Programação

Aula 03 - Projeto Java Web

Programação em Rede JDBC

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

Especialização em web com interfaces ricas

Especialização em web com interfaces ricas

NFe Nota Fiscal Eletronica

Procedimentos para Reinstalação do Sisloc

Desenvolvendo Aplicações Web com NetBeans

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Acessando bancos de dados com o JDBC

Java na Web. Aplicações Web

Manual de Utilização do TOTVS Restore

Persistência Java para Web com MySQL

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET. Programação para Internet I

JAVA 14 ODBC / JDBC Aceder a Bases de Dados através da Internet. Vitor Vaz da Silva

Desenvolvimento Web com Struts

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

(UFF) JDBC (I) TEPIS II

Desenvolvimento de Sistemas de Informação

Parte I. Demoiselle Mail

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Instalando e Configurando o Oracle XE

Transcrição:

Leonardo Gresta Paulino Murta leomurta@gmail.com

O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no banco Acessa (driver) Aplicação Java importa Pacote JDBC SGBDs (Java DB, MySQL, etc.) Leonardo Murta JDBC 2

Como usar JDBC? 1. Criar o banco de dados 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 3

Criando o BD Exemplificaremos com o banco Java DB (Apache Derby que vem no Java), configurado pelo NetBeans Contudo, é possível usar qualquer outro banco de dados que tenha driver JDBC Também é possível usar outros clientes sem ser o NetBeans Dica importante Manter o esquema (todos os create table) em um arquivo dentro do próprio projeto (esquema.sql) Idealmente, o próprio programa poderia detectar se o BD existe e criar por demanda Leonardo Murta JDBC 4

Criando o BD no NetBeans Leonardo Murta JDBC 5

Criando o BD no NetBeans Leonardo Murta JDBC 6

Criando o BD no NetBeans Leonardo Murta JDBC 7

Criando o BD no NetBeans Leonardo Murta JDBC 8

Criando o BD no NetBeans Leonardo Murta JDBC 9

1. Criar o banco de dados Como usar JDBC? 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 10

Incluindo driver do BD no projeto Primeiro, é necessário baixar o driver MySQL: h]p://dev.mysql.com/downloads/connector/j/ PostgreSQL: h]ps://jdbc.postgresql.org Apache Derby (Java DB): h]p://db.apache.org/derby/ derby_downloads.html Depois, basta copiar o arquivo.jar que contém o driver para a pasta WEB- INF/lib O NetBeans facilita nossa vida, pois já vem com alguns drivers Basta adicionar no projeto Leonardo Murta JDBC 11

Incluindo driver do BD no projeto Leonardo Murta JDBC 12

Incluindo driver do BD no projeto Leonardo Murta JDBC 13

Incluindo driver do BD no projeto Leonardo Murta JDBC 14

1. Criar o banco de dados Como usar JDBC? 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 15

Conectando com o BD A pardr deste momento já é possível criar uma conexão com o banco de dados Connection conexao = DriverManager.getConnection(<URL>, <USUARIO>, <SENHA>); Exemplo Connection conexao = DriverManager.getConnection("jdbc:derby://localhost: 1527/alomundodb", "usuario", "12345"); Leonardo Murta JDBC 16

Conectando com o BD A conexão com o BD pode ser estabelecida uma única vez, quando o Servlet é iniciado Connection conn = null; @Override public void init() throws ServletException { try { conn = DriverManager.getConnection("jdbc:derby://localhost: 1527/alomundodb", "usuario", "12345"); } catch (Exception ex) {... } } Leonardo Murta JDBC 17

Conectando com o BD Mas precisa ser fechada quando o servlet é destruído @Override public void destroy() { try { conn.close(); } catch (Exception ex) {... } } Leonardo Murta JDBC 18

1. Criar o banco de dados Como usar JDBC? 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 19

Preparando o SQL Através da conexão é possível criar um objeto de execução de SQL PreparedStatement sql = conexao.preparestatement(<sql>); Caso o SQL tenha parâmetros, usar? em cada parâmetro e atribuir os valores em seguida (importante para evitar injeção de SQL) PreparedStatement sql = conn.preparestatement("insert into contato values (?,?)") sql.setstring(1, nome); sql.setint(2, idade); Leonardo Murta JDBC 20

Preparando o SQL Também é necessário fechar o sql depois do seu uso Isso pode ser feito de forma automádca try (PreparedStatement sql = conn.preparestatement("...")) { // Execução da SQL } Ou pode ser feito manualmente, após a execução // Execução da SQL sql.close(); Leonardo Murta JDBC 21

1. Criar o banco de dados Como usar JDBC? 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 22

Executando o SQL Para a executar atualizações na base (comandos create, drop, alter, insert, update, delete) sql.executeupdate(); Para a executar consultas na base (comando select) ResultSet resultado = sql.executequery(); Leonardo Murta JDBC 23

Executando o SQL Exemplo de inserção de um contato (nome e idade) preenchido no fomulário HTML String nome = request.getparameter("nome"); String idade = request.getparameter("idade"); if (nome!= null && idade!= null) { try (PreparedStatement sql = conexao.preparestatement("insert into contato values (?,?)")) { sql.setstring(1, nome); sql.setint(2, Integer.parseInt(idade)); sql.executeupdate(); } catch (Exception ex) {... } } Leonardo Murta JDBC 24

1. Criar o banco de dados Como usar JDBC? 2. Incluir no projeto o driver de acesso ao banco de dados desejado 3. Conectar com o banco de dados 4. Preparar o SQL 5. Executar o SQL 6. Iterar sobre o resultado Leonardo Murta JDBC 25

Iterando sobre o resultado O método executequery() retorna um objeto da classe ResultSet, que contém as tuplas que foram selecionadas na consulta O ResultSet permite acessar a próxima tupla Método next() Deve ser usado inclusive para pegar a primeira tupla Retorna false se não houver próxima tupla O ResultSet também permite acessar os dados da tupla corrente Método getxxx(<nome DO CAMPO>), onde XXX é o dpo do campo (ex.: getint("id") ou getstring("nome")) Leonardo Murta JDBC 26

Iterando sobre o resultado Exemplo de consulta a todos os contatos existentes no BD try (PreparedStatement sql = conn.preparestatement("select * from contato")) { ResultSet resultado = sql.executequery(); while (resultado.next()) { } out.print("<p>" + resultado.getstring("nome")); out.println(", " + resultado.getint("idade") + </p>"); } catch (SQLException ex) { }... Leonardo Murta JDBC 27

Tudo junto 3 connectar Connection 4 preparar PreparedStatement 5 Executar consulta ResultSet 6 iterar 5 Executar atualização Driver BD 2 incluir BD 1 criar Leonardo Murta JDBC 28

Transações Executa um conjunto de comandos como se fossem atômicos Método setautocommit(boolean) de ConnecFon permite definir se cada comando SQL é confirmado (ConnecFon.commit()) automadcamente, logo após ser executado ou não (default é true) Se não for automádco, o programador deve fazer chamar o método commit() Caso seja necessário descartar a transação, basta chamar o método rollback(), também de ConnecFon. Leonardo Murta JDBC 29

Transações try { conexao.setautocommit(false); sql1.executeupdate(); sql2.executeupdate(); conexao.commit(); } catch (SQLException e) { conexao.rollback();... } finally { sql1.close(); } sql2.close(); conexao.setautocommit(true); Leonardo Murta JDBC 30

Exercício Faça uma aplicação web de agenda eletrônica usando Servlet e JDBC Permita o cadastro, listagem e remoção de contatos Cada contato deve ter nome, endereço e telefone A listagem dos contatos deve ser feita em uma tabela HTML Ao lado de cada contato deve ter um link para a sua remoção Leonardo Murta JDBC 31

Leonardo Gresta Paulino Murta leomurta@gmail.com