SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Java Web
*Slides do primeiro módulo do Curso Formação Java Web da 3Way Networks
Todos direitos reservados a 3Way Networks
Java WEB
Aula 01
– Banco de Dados Relacionais
– SQL
– JDBC
Páginas: 8 à 16
Todos direitos reservados a 3Way Networks
Bancos de Dados Relacionais
• Mídia de armazenamento escolhida por muitas aplicações
baseadas na WEB que requerem conteúdo dinâmico.
• Sintaxe básica necessária para recuperar e manipular dados
armazenados, de fácil aprendizado.
• Possui suporte muito difundido pela indústria.
• Armazena registros como conjuntos relacionados.
 O processo de armazenagem e captura de dados em um banco
é chamado de persistência.
Todos direitos reservados a 3Way Networks
Bancos de Dados Relacionais: Tabelas
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
TABELA – COMPRA
ID ID_CLIENTE COD_PRODUTO QTD
100 1003 2556 5
101 1008 1242 8
102 1004 56 2
103 2056 65995 1
Todos direitos reservados a 3Way Networks
• Tabelas de bancos de dados são projetadas com restrições
lógicas para preservar a consistência de seus dados
– Assinalação de tipos de dados
– Singularidade
– Outros
Bancos de Dados Relacionais: Tabelas
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
ID tipo Integer
NOME, ENDERECO tipo VARCHAR
CPF tipo CHAR(11) E ÚNICO
Todos direitos reservados a 3Way Networks
Comandos SQL
• Operações em bancos de dados relacionais são realizadas por
meio do uso de SQL ( Structured Query Language, ou
Linguagem de Consulta Estruturada )
• Há diversos tipos de comandos de SQL
• Entre estes:
– Recuperação de dados
– Manipulação de dados
Todos direitos reservados a 3Way Networks
Recuperação de Dados
• Focado na leitura de dados a partir de uma ou mais tabelas no
banco de dados
– Pode ser aberta para recuperar TODOS os conjuntos de
dados
– Pode ser parametrizada com valores conhecidos
• Somente um comando SQL abrange este tipo: SELECT
Todos direitos reservados a 3Way Networks
Comando SELECT
É usado para selecionar dados nas tabelas do banco de dados.
SELECT coluna(s) FROM nomeTabela where condição(ões)
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
SELECT * FROM clientes WHERE ID = '1004';
Resultado:
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
Todos direitos reservados a 3Way Networks
Cláusula FROM e União de Tabelas
• Define em uma declaração SELECT as tabelas a partir das
quais os dados serão reunidos
– Se o dados vem de uma só tabela
– Se o dados vem de mais de uma tabela
• Tabelas podem ser separadas por meio de vírgulas
• Modo mais simples entretanto, o desempenho classifica os
dados mais lentamente.
• Executa um produto cartesiano nas tabelas
• Exemplo:
dadas duas tabelas, clientes e compra, união é executada por
... FROM clientes, compra
where clientes.id = compra.id_cliente ...
Todos direitos reservados a 3Way Networks
União de Tabelas
• Usando uma das várias palavras-chave
– JOIN
– LEFT JOIN
– RIGHT JOIN
– INNER JOIN
• Exemplos:
FROM tabela1 JOIN tabela2 on tabela1.id = tabela2.id
FROM tabela1 LEFT JOIN tabela2 on tabela1.id = tabela2.id
FROM tabela1 RIGHT JOIN tabela2 on tabela1.id = tabela2.id
FROM tabela1 INNER JOIN tabela2 on tabela1.id = tabela2.id
Todos direitos reservados a 3Way Networks
Exemplo de União de Tabelas
Dadas as tabelas clientes e compra:
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
TABELA – COMPRA
ID ID_CLIENTE COD_PRODUTO QTD
100 1003 2556 5
101 1008 1242 8
102 1004 56 2
103 2056 65995 1
Todos direitos reservados a 3Way Networks
Exemplo de União
A união dessas tabelas resulta em um plano cartesiano com
união de todos os registros das duas tabelas.
UNIÃO DE CLIENTES COM COMPRA
ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD
1003 JOAO AFONSO RUA 200 02153565584 100 100 1003 2556
1003 JOAO AFONSO RUA 200 02153565584 101 101 1008 1242
1003 JOAO AFONSO RUA 200 02153565584 102 102 1004 56
1003 JOAO AFONSO RUA 200 02153565584 103 103 2056 65995
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 100 100 1003 2556
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 101 101 1008 1242
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 102 1004 56
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 103 103 2056 65995
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 100 100 1003 2556
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 101 101 1008 1242
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 102 102 1004 56
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 103 103 2056 65995
Todos direitos reservados a 3Way Networks
União de Tabelas
LEFT JOIN
ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD
1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
• LEFT JOIN, a união utilizando este comando implica em trazer
todos os registros de CLIENTE não sendo obrigatório existir
dados na tabela COMPRA unidas com LEFT, mas se tiver
resultado, então deve ser recuperado a COMPRA junto com o
registro do respectivo CLIENTE. Se o cliente não tiver feito
nenhuma compra, então as colunas de COMPRA vem vazias.
SELECT * FROM cliente
LEFT JOIN compra ON cliente.ID = compra.ID_CLIENTE
Todos direitos reservados a 3Way Networks
União de Tabelas
• RIGHT JOIN, é exatamente o inverso do uso do LEFT JOIN, ou
seja, será recuperado todos os registros da tabela COMPRA e
para as compras que tiver CLIENTE, então os dados do CLIENTE
será recuperado, caso contrária retornará vazio.
SELECT * FROM cliente
RIGHT JOIN compra ON cliente.ID = compra.ID_CLIENTE
RIGHT JOIN
ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD
1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5
101 1008 1242 8
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2
103 2056 65995 1
Todos direitos reservados a 3Way Networks
União de Tabelas
• INNER JOIN, a união utilizando este comando implica em trazer
somente os resultados quando existir nas duas tabelas
relacionadas. Para o nosso caso só será retornado os CLIENTES
que fizeram COMPRAS e as COMPRAS que possuem
CLIENTES cadastrados.
SELECT * FROM cliente
INNER JOIN compra ON cliente.ID = compra.ID_CLIENTE
INNER JOIN
ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD
1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2
Todos direitos reservados a 3Way Networks
União de Tabelas
• Na maioria dos casos, uma INNER JOIN rende os resultados
mais relevantes para operações de união
• A casos onde as entradas de uma tabela deveriam aparecer não
importando a existência de dados de outra tabela, a utilização de
LEFT JOIN ou RIGHT JOIN é mais apropriada
• Evite usar união delimitada por vírgulas
• É mais simples e conveniente de escrever união de tabelas
utilizando palavras-chave
Todos direitos reservados a 3Way Networks
Cláusula WHERE
• Especifica uma condição que deve ser casada pelas entradas
na tabela selecionada para que elas sejam utilizadas como filtro
para o resultado
• Operadores lógicos podem ser usados:
 = (igualdade)
 <= (menor ou igual) , < (menor)
 >= (maior ou igual), > (maior)
 like - executa comparação para campos texto:
% - utilizado para indicar que após e/ou antes do carácter pode-
se ter qualquer valor, dependendo da posição utilizada
Todos direitos reservados a 3Way Networks
Exemplos de declarações SELECT
• Recupera todas colunas e dados disponíveis na tabela Clientes:
SELECT * FROM clientes;
• Retorna somente a coluna ENDERECO da tabela Clientes com
a coluna Nome o valor igual JOAO AFONSO:
SELECT ENDERECO FROM cliente WHERE NOME = 'JOAO
AFONSO';
• Retorna todos as colunas da tabela Clientes com o valor da
coluna Nome iniciado por 'S':
SELECT * FROM clientes WHERE NOME LIKE 'S%';
Todos direitos reservados a 3Way Networks
Manipulação de Dados
• Usado para modificar o valor de dados dentro de tabelas.
• Comandos SQL podem ser:
– Comando INSERT
– Comando UPDATE
– Comando DELETE
Todos direitos reservados a 3Way Networks
Comando INSERT
• Comando utilizado para inserir dados na tabela:
• Deve seguir as regras de integridade da tabela, ou seja, não
tentar inserir uma string em um campo inteiro.
• Sintaxe:
INSERT INTO tabela
VALUES ('VALOR1', 'VALOR2', ..., 'VALORn');
INSERT INTO tabela ( CAMPO1, CAMPO2, ... CAMPOn )
VALUES ( 'VALORC1', 'VALORC2', ... 'VALORCn' )
Todos direitos reservados a 3Way Networks
Comando INSERT
INSERT INTO clientes
VALUES('2006','JOSE JUNIOR','PRAÇA DA VIDA, '52147844174')
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174
Todos direitos reservados a 3Way Networks
Comando INSERT
INSERT INTO clientes
(CPF, ID, ENDERECO, NOME)
VALUES ('2365412394','2007','RUA JACA','MARIA MARTA')
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174
2007 MARIA MARTA RUA JACA 2365412394
Todos direitos reservados a 3Way Networks
Comando UPDATE
• Comando utilizado quando se quer alterar dados em uma
tabela
• Quaisquer atualizações devem ser conforme as regras de
integridade no banco de dados
• Sintaxe:
UPDATE tabela SET coluna(s)
UPDATE tabela SET coluna(s) WHERE condição
Todos direitos reservados a 3Way Networks
Data a tabela produtos:
Comando UPDATE
PRODUTOS
ID PRODUTO PRECO
56 PASTA DENTAL 2,55
1242 DESODORANTE 8,78
2556 MOUSE 12,35
65995 COTONETE 1,65
UPDATE produtos
SET PRECO = PRECO * 1.1
Atualizá-la
aumentando os
valores dos produtos
em 10%.
PRODUTOS
ID PRODUTO PRECO
56 PASTA DENTAL 2,81
1242 DESODORANTE 9,66
2556 MOUSE 13,58
65995 COTONETE 1,82
Todos direitos reservados a 3Way Networks
Comando UPDATE
UPDATE clientes
SET CPF = '32365412394' WHERE ID = '2007'
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174
2007 MARIA MARTA RUA JACA 2365412394
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174
2007 MARIA MARTA RUA JACA 32365412394
Todos direitos reservados a 3Way Networks
Comando DELETE
• Se nenhuma condição for dada, o comando elimina todos os
registros na tabela especificada.
• Sintaxe:
DELETE FROM tabela WHERE condição(ões)
Todos direitos reservados a 3Way Networks
DELETE FROM clientes
WHERE ID = '2006' OR ID = '2007'
Comando DELETE
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174
2007 MARIA MARTA RUA JACA 32365412394
TABELA – CLIENTES
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
Todos direitos reservados a 3Way Networks
JDBC – Java DataBase Connectivity
• Biblioteca padrão que fornece acesso a bancos de dados por
meio de Java
• Desenvolvedores podem acessar bancos de dados não
importando quem é o distribuidor
– Distribuidores fornecem a implementação para interfaces
abstratas definidas na API
– Fornece o mesmo conjunto de funcionalidades para o
desenvolvedor
Todos direitos reservados a 3Way Networks
• java.sql.Connection: Representa uma conexão com um banco
de dados
• java.sql.DriverManager: Gerencia drivers JDBC usados pela
aplicação
• java.sql.Statement: Fornece métodos para o desenvolvedor
executar instruções SQL
• java.sql.ResultSet: Representa o resultado de uma instrução
SQL de Pesquisa
JDBC – Java DataBase Connectivity
Todos direitos reservados a 3Way Networks
java.sql.DriverManager
• Permite que um desenvolvedor recupere um objeto Connection
que pode ser usado para executar instruções em bancos de
dados.
• O Driver JDBC deve estar registrado com o DriverManager
• Usar o método getConnection em DriverManager para criar
uma conexão com o banco.
DriverManager.getConnection(UrlBD, UsuBD, PassBD);
Todos direitos reservados a 3Way Networks
Executando uma Conexão
Todos direitos reservados a 3Way Networks
java.sql.Connection / java.sql.Statement
• Objetos da classe java.sql.Connection representam conexões
criada para o banco de dados.
• Uma vez de posse deste objeto, criamos um objeto da classe
Statement, que usamos para executar consultas SQL.
– ExecuteQuery: para execução de comandos SELECT,
retornando o resultado de operações como um objeto
ResultSet.
– ExecuteUpdate: para execução de comandos INSERT,
UPDATE ou DELETE, retornando um int com o número de
colunas afetadas com a execução do comando.
Todos direitos reservados a 3Way Networks
java.sql.ResultSet
• Contém o resultado de uma consulta no banco de dados.
• Um objeto ResultSet pode ser visualizado como uma tabela.
• A informação é recuperada uma coluna por vez.
• O objeto ResultSet mantém a coluna corrente.
• Para percorrer as linhas da tabela em ResultSet, usamos o
método next().
Todos direitos reservados a 3Way Networks
Executando uma Consulta
Todos direitos reservados a 3Way Networks
Executando uma Consulta
Todos direitos reservados a 3Way Networks
Executando uma Consulta
Resultado da consulta seria:
JOAO AFONSO :: 02153565584
MARIA JOSEFINA :: 69535412584
JOSE BARBOSA :: 96524136984
Todos direitos reservados a 3Way Networks
Executando uma Inserção
Todos direitos reservados a 3Way Networks
Executando uma Inserção
ID NOME ENDERECO CPF
1003 JOAO AFONSO RUA 200 02153565584
1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584
2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984
2008 AFONSO JOSE RUA BELEZA 98555687425
Todos direitos reservados a 3Way Networks
Liberando Recursos do Sistema
• Este é um passo muito importante que freqüentemente é
negligenciado após ter sido completada uma operação no Banco
de Dados.
• Deve ser feita explicitamente e é uma responsabilidade do
programador.
• Sem executar a liberação, os recursos tomados pela operação
não podem ser usadas no futuro.
• Para aplicações muito grandes, isto rapidamente resulta na
perda de conexões disponíveis.
Todos direitos reservados a 3Way Networks
• Executada quando chamado o método close() disponível em
cada objeto das classes Connection, Statement, e ResultSet
– Existe uma ordem específica envolvida
– O método close está definido para lançar uma
SQLException
• Erros comuns dos desenvolvedores: colocar simplesmente os
métodos dentro do corpo do try do programa
• Somente recorrer a condições de bem sucedidas
• O código deve ser colocado dentro de uma cláusula finally
Liberando Recursos do Sistema
Todos direitos reservados a 3Way Networks
FAZER LABORATÓRIO 1
Todos direitos reservados a 3Way Networks

Más contenido relacionado

La actualidad más candente

Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Vasco Marques
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de DadosKablo Skater Rail
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCentro Paula Souza
 
Normalização básica
Normalização básicaNormalização básica
Normalização básicaNadia Habu
 
Alterando a estrutura de uma tabela
Alterando a estrutura de uma tabelaAlterando a estrutura de uma tabela
Alterando a estrutura de uma tabelaCentro Paula Souza
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
Apostila-do-microsoft-excel2010
 Apostila-do-microsoft-excel2010 Apostila-do-microsoft-excel2010
Apostila-do-microsoft-excel2010Nome Sobrenome
 
Microsoft excel 2010 FOLHA DE CÁLCULO
Microsoft excel 2010 FOLHA DE  CÁLCULOMicrosoft excel 2010 FOLHA DE  CÁLCULO
Microsoft excel 2010 FOLHA DE CÁLCULONguyễn Dũng
 
01 - Microsoft Office Excel Básico
01 - Microsoft Office Excel Básico01 - Microsoft Office Excel Básico
01 - Microsoft Office Excel BásicoRoney Sousa
 
Mini curso excel pratico
Mini curso excel praticoMini curso excel pratico
Mini curso excel praticoDeise Sfreddo
 
Excelbsico 090720103048-phpapp02
Excelbsico 090720103048-phpapp02Excelbsico 090720103048-phpapp02
Excelbsico 090720103048-phpapp02willsilva10
 

La actualidad más candente (19)

Apostila excel basico
Apostila excel basicoApostila excel basico
Apostila excel basico
 
Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist Curso Microsoft Excel Specialist
Curso Microsoft Excel Specialist
 
Aulas EXCEL
Aulas EXCELAulas EXCEL
Aulas EXCEL
 
Normalização Banco de Dados
Normalização Banco de DadosNormalização Banco de Dados
Normalização Banco de Dados
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Aula 9 Modelagem de Dados
Aula 9 Modelagem de DadosAula 9 Modelagem de Dados
Aula 9 Modelagem de Dados
 
Criando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL WorkbenchCriando um banco de dados com MySQL Workbench
Criando um banco de dados com MySQL Workbench
 
Normalização básica
Normalização básicaNormalização básica
Normalização básica
 
Alterando a estrutura de uma tabela
Alterando a estrutura de uma tabelaAlterando a estrutura de uma tabela
Alterando a estrutura de uma tabela
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Curso SQL Server 2005
Curso SQL Server 2005Curso SQL Server 2005
Curso SQL Server 2005
 
Apostila-do-microsoft-excel2010
 Apostila-do-microsoft-excel2010 Apostila-do-microsoft-excel2010
Apostila-do-microsoft-excel2010
 
Microsoft excel 2010 FOLHA DE CÁLCULO
Microsoft excel 2010 FOLHA DE  CÁLCULOMicrosoft excel 2010 FOLHA DE  CÁLCULO
Microsoft excel 2010 FOLHA DE CÁLCULO
 
01 - Microsoft Office Excel Básico
01 - Microsoft Office Excel Básico01 - Microsoft Office Excel Básico
01 - Microsoft Office Excel Básico
 
Mini curso excel pratico
Mini curso excel praticoMini curso excel pratico
Mini curso excel pratico
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
Workshop Totvs Report
Workshop Totvs ReportWorkshop Totvs Report
Workshop Totvs Report
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Excelbsico 090720103048-phpapp02
Excelbsico 090720103048-phpapp02Excelbsico 090720103048-phpapp02
Excelbsico 090720103048-phpapp02
 

Similar a Java Web SQL e JDBC

Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosGustavo Sávio
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Emiliano Barbosa
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasRodrigo Kiyoshi Saito
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Emiliano Barbosa
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016Roberto Fonseca
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sqlCharleston Anjos
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsRodrigo Kiyoshi Saito
 
Aula 6 sql - introdução
Aula 6   sql - introduçãoAula 6   sql - introdução
Aula 6 sql - introduçãoHélio Martins
 
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfwepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfJOSIMARMENEGATT2
 
MySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - NaveggMySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - NaveggFelipe Guimarães
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 

Similar a Java Web SQL e JDBC (20)

Inner Join
Inner JoinInner Join
Inner Join
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Modulo 15 PSI
Modulo 15 PSIModulo 15 PSI
Modulo 15 PSI
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
BD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelasBD I - Aula 15 C - Manutencao de tabelas
BD I - Aula 15 C - Manutencao de tabelas
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
Fundamentos SQL - Microsoft SQL Server 2019 - Parte 1/8
 
Novidades do Sql Server 2016
Novidades do Sql Server 2016Novidades do Sql Server 2016
Novidades do Sql Server 2016
 
Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Aula 12 banco de dados
Aula 12   banco de dadosAula 12   banco de dados
Aula 12 banco de dados
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Aula 6 sql - introdução
Aula 6   sql - introduçãoAula 6   sql - introdução
Aula 6 sql - introdução
 
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdfwepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
wepik-introducao-aos-conceitos-de-sql-20230620200232U48s.pdf
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
MySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - NaveggMySQL - Wagner Bonfiglio - Navegg
MySQL - Wagner Bonfiglio - Navegg
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
BD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DMLBD I - Aula 15 A - Comandos DML
BD I - Aula 15 A - Comandos DML
 

Java Web SQL e JDBC

  • 1. Java Web *Slides do primeiro módulo do Curso Formação Java Web da 3Way Networks Todos direitos reservados a 3Way Networks
  • 2. Java WEB Aula 01 – Banco de Dados Relacionais – SQL – JDBC Páginas: 8 à 16 Todos direitos reservados a 3Way Networks
  • 3. Bancos de Dados Relacionais • Mídia de armazenamento escolhida por muitas aplicações baseadas na WEB que requerem conteúdo dinâmico. • Sintaxe básica necessária para recuperar e manipular dados armazenados, de fácil aprendizado. • Possui suporte muito difundido pela indústria. • Armazena registros como conjuntos relacionados.  O processo de armazenagem e captura de dados em um banco é chamado de persistência. Todos direitos reservados a 3Way Networks
  • 4. Bancos de Dados Relacionais: Tabelas TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 TABELA – COMPRA ID ID_CLIENTE COD_PRODUTO QTD 100 1003 2556 5 101 1008 1242 8 102 1004 56 2 103 2056 65995 1 Todos direitos reservados a 3Way Networks
  • 5. • Tabelas de bancos de dados são projetadas com restrições lógicas para preservar a consistência de seus dados – Assinalação de tipos de dados – Singularidade – Outros Bancos de Dados Relacionais: Tabelas TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 ID tipo Integer NOME, ENDERECO tipo VARCHAR CPF tipo CHAR(11) E ÚNICO Todos direitos reservados a 3Way Networks
  • 6. Comandos SQL • Operações em bancos de dados relacionais são realizadas por meio do uso de SQL ( Structured Query Language, ou Linguagem de Consulta Estruturada ) • Há diversos tipos de comandos de SQL • Entre estes: – Recuperação de dados – Manipulação de dados Todos direitos reservados a 3Way Networks
  • 7. Recuperação de Dados • Focado na leitura de dados a partir de uma ou mais tabelas no banco de dados – Pode ser aberta para recuperar TODOS os conjuntos de dados – Pode ser parametrizada com valores conhecidos • Somente um comando SQL abrange este tipo: SELECT Todos direitos reservados a 3Way Networks
  • 8. Comando SELECT É usado para selecionar dados nas tabelas do banco de dados. SELECT coluna(s) FROM nomeTabela where condição(ões) TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 SELECT * FROM clientes WHERE ID = '1004'; Resultado: 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 Todos direitos reservados a 3Way Networks
  • 9.
  • 10. Cláusula FROM e União de Tabelas • Define em uma declaração SELECT as tabelas a partir das quais os dados serão reunidos – Se o dados vem de uma só tabela – Se o dados vem de mais de uma tabela • Tabelas podem ser separadas por meio de vírgulas • Modo mais simples entretanto, o desempenho classifica os dados mais lentamente. • Executa um produto cartesiano nas tabelas • Exemplo: dadas duas tabelas, clientes e compra, união é executada por ... FROM clientes, compra where clientes.id = compra.id_cliente ... Todos direitos reservados a 3Way Networks
  • 11. União de Tabelas • Usando uma das várias palavras-chave – JOIN – LEFT JOIN – RIGHT JOIN – INNER JOIN • Exemplos: FROM tabela1 JOIN tabela2 on tabela1.id = tabela2.id FROM tabela1 LEFT JOIN tabela2 on tabela1.id = tabela2.id FROM tabela1 RIGHT JOIN tabela2 on tabela1.id = tabela2.id FROM tabela1 INNER JOIN tabela2 on tabela1.id = tabela2.id Todos direitos reservados a 3Way Networks
  • 12. Exemplo de União de Tabelas Dadas as tabelas clientes e compra: TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 TABELA – COMPRA ID ID_CLIENTE COD_PRODUTO QTD 100 1003 2556 5 101 1008 1242 8 102 1004 56 2 103 2056 65995 1 Todos direitos reservados a 3Way Networks
  • 13. Exemplo de União A união dessas tabelas resulta em um plano cartesiano com união de todos os registros das duas tabelas. UNIÃO DE CLIENTES COM COMPRA ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD 1003 JOAO AFONSO RUA 200 02153565584 100 100 1003 2556 1003 JOAO AFONSO RUA 200 02153565584 101 101 1008 1242 1003 JOAO AFONSO RUA 200 02153565584 102 102 1004 56 1003 JOAO AFONSO RUA 200 02153565584 103 103 2056 65995 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 100 100 1003 2556 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 101 101 1008 1242 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 102 1004 56 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 103 103 2056 65995 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 100 100 1003 2556 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 101 101 1008 1242 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 102 102 1004 56 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 103 103 2056 65995 Todos direitos reservados a 3Way Networks
  • 14. União de Tabelas LEFT JOIN ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD 1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 • LEFT JOIN, a união utilizando este comando implica em trazer todos os registros de CLIENTE não sendo obrigatório existir dados na tabela COMPRA unidas com LEFT, mas se tiver resultado, então deve ser recuperado a COMPRA junto com o registro do respectivo CLIENTE. Se o cliente não tiver feito nenhuma compra, então as colunas de COMPRA vem vazias. SELECT * FROM cliente LEFT JOIN compra ON cliente.ID = compra.ID_CLIENTE Todos direitos reservados a 3Way Networks
  • 15. União de Tabelas • RIGHT JOIN, é exatamente o inverso do uso do LEFT JOIN, ou seja, será recuperado todos os registros da tabela COMPRA e para as compras que tiver CLIENTE, então os dados do CLIENTE será recuperado, caso contrária retornará vazio. SELECT * FROM cliente RIGHT JOIN compra ON cliente.ID = compra.ID_CLIENTE RIGHT JOIN ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD 1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5 101 1008 1242 8 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2 103 2056 65995 1 Todos direitos reservados a 3Way Networks
  • 16. União de Tabelas • INNER JOIN, a união utilizando este comando implica em trazer somente os resultados quando existir nas duas tabelas relacionadas. Para o nosso caso só será retornado os CLIENTES que fizeram COMPRAS e as COMPRAS que possuem CLIENTES cadastrados. SELECT * FROM cliente INNER JOIN compra ON cliente.ID = compra.ID_CLIENTE INNER JOIN ID NOME ENDERECO CPF ID ID_CLIENTE COD_PRODUTO QTD 1003 JOAO AFONSO RUA 200 02153565584 100 1003 2556 5 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 102 1004 56 2 Todos direitos reservados a 3Way Networks
  • 17.
  • 18. União de Tabelas • Na maioria dos casos, uma INNER JOIN rende os resultados mais relevantes para operações de união • A casos onde as entradas de uma tabela deveriam aparecer não importando a existência de dados de outra tabela, a utilização de LEFT JOIN ou RIGHT JOIN é mais apropriada • Evite usar união delimitada por vírgulas • É mais simples e conveniente de escrever união de tabelas utilizando palavras-chave Todos direitos reservados a 3Way Networks
  • 19. Cláusula WHERE • Especifica uma condição que deve ser casada pelas entradas na tabela selecionada para que elas sejam utilizadas como filtro para o resultado • Operadores lógicos podem ser usados:  = (igualdade)  <= (menor ou igual) , < (menor)  >= (maior ou igual), > (maior)  like - executa comparação para campos texto: % - utilizado para indicar que após e/ou antes do carácter pode- se ter qualquer valor, dependendo da posição utilizada Todos direitos reservados a 3Way Networks
  • 20. Exemplos de declarações SELECT • Recupera todas colunas e dados disponíveis na tabela Clientes: SELECT * FROM clientes; • Retorna somente a coluna ENDERECO da tabela Clientes com a coluna Nome o valor igual JOAO AFONSO: SELECT ENDERECO FROM cliente WHERE NOME = 'JOAO AFONSO'; • Retorna todos as colunas da tabela Clientes com o valor da coluna Nome iniciado por 'S': SELECT * FROM clientes WHERE NOME LIKE 'S%'; Todos direitos reservados a 3Way Networks
  • 21. Manipulação de Dados • Usado para modificar o valor de dados dentro de tabelas. • Comandos SQL podem ser: – Comando INSERT – Comando UPDATE – Comando DELETE Todos direitos reservados a 3Way Networks
  • 22. Comando INSERT • Comando utilizado para inserir dados na tabela: • Deve seguir as regras de integridade da tabela, ou seja, não tentar inserir uma string em um campo inteiro. • Sintaxe: INSERT INTO tabela VALUES ('VALOR1', 'VALOR2', ..., 'VALORn'); INSERT INTO tabela ( CAMPO1, CAMPO2, ... CAMPOn ) VALUES ( 'VALORC1', 'VALORC2', ... 'VALORCn' ) Todos direitos reservados a 3Way Networks
  • 23. Comando INSERT INSERT INTO clientes VALUES('2006','JOSE JUNIOR','PRAÇA DA VIDA, '52147844174') TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174 Todos direitos reservados a 3Way Networks
  • 24. Comando INSERT INSERT INTO clientes (CPF, ID, ENDERECO, NOME) VALUES ('2365412394','2007','RUA JACA','MARIA MARTA') TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174 2007 MARIA MARTA RUA JACA 2365412394 Todos direitos reservados a 3Way Networks
  • 25. Comando UPDATE • Comando utilizado quando se quer alterar dados em uma tabela • Quaisquer atualizações devem ser conforme as regras de integridade no banco de dados • Sintaxe: UPDATE tabela SET coluna(s) UPDATE tabela SET coluna(s) WHERE condição Todos direitos reservados a 3Way Networks
  • 26. Data a tabela produtos: Comando UPDATE PRODUTOS ID PRODUTO PRECO 56 PASTA DENTAL 2,55 1242 DESODORANTE 8,78 2556 MOUSE 12,35 65995 COTONETE 1,65 UPDATE produtos SET PRECO = PRECO * 1.1 Atualizá-la aumentando os valores dos produtos em 10%. PRODUTOS ID PRODUTO PRECO 56 PASTA DENTAL 2,81 1242 DESODORANTE 9,66 2556 MOUSE 13,58 65995 COTONETE 1,82 Todos direitos reservados a 3Way Networks
  • 27. Comando UPDATE UPDATE clientes SET CPF = '32365412394' WHERE ID = '2007' TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174 2007 MARIA MARTA RUA JACA 2365412394 TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174 2007 MARIA MARTA RUA JACA 32365412394 Todos direitos reservados a 3Way Networks
  • 28.
  • 29. Comando DELETE • Se nenhuma condição for dada, o comando elimina todos os registros na tabela especificada. • Sintaxe: DELETE FROM tabela WHERE condição(ões) Todos direitos reservados a 3Way Networks
  • 30. DELETE FROM clientes WHERE ID = '2006' OR ID = '2007' Comando DELETE TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2006 JOSE JUNIOR PRAÇA DA VIDA 52147844174 2007 MARIA MARTA RUA JACA 32365412394 TABELA – CLIENTES ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 Todos direitos reservados a 3Way Networks
  • 31. JDBC – Java DataBase Connectivity • Biblioteca padrão que fornece acesso a bancos de dados por meio de Java • Desenvolvedores podem acessar bancos de dados não importando quem é o distribuidor – Distribuidores fornecem a implementação para interfaces abstratas definidas na API – Fornece o mesmo conjunto de funcionalidades para o desenvolvedor Todos direitos reservados a 3Way Networks
  • 32. • java.sql.Connection: Representa uma conexão com um banco de dados • java.sql.DriverManager: Gerencia drivers JDBC usados pela aplicação • java.sql.Statement: Fornece métodos para o desenvolvedor executar instruções SQL • java.sql.ResultSet: Representa o resultado de uma instrução SQL de Pesquisa JDBC – Java DataBase Connectivity Todos direitos reservados a 3Way Networks
  • 33. java.sql.DriverManager • Permite que um desenvolvedor recupere um objeto Connection que pode ser usado para executar instruções em bancos de dados. • O Driver JDBC deve estar registrado com o DriverManager • Usar o método getConnection em DriverManager para criar uma conexão com o banco. DriverManager.getConnection(UrlBD, UsuBD, PassBD); Todos direitos reservados a 3Way Networks
  • 34. Executando uma Conexão Todos direitos reservados a 3Way Networks
  • 35.
  • 36. java.sql.Connection / java.sql.Statement • Objetos da classe java.sql.Connection representam conexões criada para o banco de dados. • Uma vez de posse deste objeto, criamos um objeto da classe Statement, que usamos para executar consultas SQL. – ExecuteQuery: para execução de comandos SELECT, retornando o resultado de operações como um objeto ResultSet. – ExecuteUpdate: para execução de comandos INSERT, UPDATE ou DELETE, retornando um int com o número de colunas afetadas com a execução do comando. Todos direitos reservados a 3Way Networks
  • 37. java.sql.ResultSet • Contém o resultado de uma consulta no banco de dados. • Um objeto ResultSet pode ser visualizado como uma tabela. • A informação é recuperada uma coluna por vez. • O objeto ResultSet mantém a coluna corrente. • Para percorrer as linhas da tabela em ResultSet, usamos o método next(). Todos direitos reservados a 3Way Networks
  • 38. Executando uma Consulta Todos direitos reservados a 3Way Networks
  • 39. Executando uma Consulta Todos direitos reservados a 3Way Networks
  • 40. Executando uma Consulta Resultado da consulta seria: JOAO AFONSO :: 02153565584 MARIA JOSEFINA :: 69535412584 JOSE BARBOSA :: 96524136984 Todos direitos reservados a 3Way Networks
  • 41. Executando uma Inserção Todos direitos reservados a 3Way Networks
  • 42. Executando uma Inserção ID NOME ENDERECO CPF 1003 JOAO AFONSO RUA 200 02153565584 1004 MARIA JOSEFINA RUA DOS AFLITOS 69535412584 2005 JOSE BARBOSA AV. DEPENDENCIA 96524136984 2008 AFONSO JOSE RUA BELEZA 98555687425 Todos direitos reservados a 3Way Networks
  • 43.
  • 44. Liberando Recursos do Sistema • Este é um passo muito importante que freqüentemente é negligenciado após ter sido completada uma operação no Banco de Dados. • Deve ser feita explicitamente e é uma responsabilidade do programador. • Sem executar a liberação, os recursos tomados pela operação não podem ser usadas no futuro. • Para aplicações muito grandes, isto rapidamente resulta na perda de conexões disponíveis. Todos direitos reservados a 3Way Networks
  • 45. • Executada quando chamado o método close() disponível em cada objeto das classes Connection, Statement, e ResultSet – Existe uma ordem específica envolvida – O método close está definido para lançar uma SQLException • Erros comuns dos desenvolvedores: colocar simplesmente os métodos dentro do corpo do try do programa • Somente recorrer a condições de bem sucedidas • O código deve ser colocado dentro de uma cláusula finally Liberando Recursos do Sistema Todos direitos reservados a 3Way Networks
  • 46. FAZER LABORATÓRIO 1 Todos direitos reservados a 3Way Networks