A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 28 Acessando bancos de dados com o JDBC

Apresentações semelhantes


Apresentação em tema: "Capítulo 28 Acessando bancos de dados com o JDBC"— Transcrição da apresentação:

1 Capítulo 28 Acessando bancos de dados com o JDBC
Java Como Programar, 8/E Slide 1 Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

2

3

4

5 28.1 Introdução Um Banco de Dados é uma coleção organizada de dados;
Um Sistema de Gerenciamento de Bancos de Dados (Database Management System – DBMS) fornece mecanismos para armazenar, organizar, recuperar e modificar dados para muitos usuários; SQL (Structured Query Language) é a linguagem padrão utilizada quase universalmente com bancos de dados relacionais para realizar consultas e para manipular dados; Sistemas de Gerenciamento de Banco de Dados Relacional (RDBMSs) populares: Microsoft SQL Server, Oracle, Sybase, IBM DB2, Informix, PostgreSQL , MySQL.

6 O JDK vem agora com um RDBMS puro Java chamado Java DB — a versão da Sun para o Apache Derby;
Os programas Java comunicam-se com bancos de dados e manipulam seus dados utilizando a Java Database Connectivity (JDBC™) API, baseada na ideia do ODBC; Um driver JDBC permite aos aplicativos Java conectar-se a um banco de dados em um DBMS particular e permite a manipulação desse banco de dados utilizando o JDBC API; MySQL é um RDBMS de código-fonte aberto, disponível tanto para Windows quanto Linus. Site: dev.mysql.com

7 A separação entre API do JDBC e drivers de banco de dados particulares permite aos desenvolvedores alterar o banco de dados sem modificar o código Java que acessa o Banco de Dados. API Java: java.sql.* e javax.sql.* Exemplo de driver JDBC: Connector J (MySQL)

8

9 Passos para conexão com Banco de Dados em um aplicativo Java
Quando um aplicativo Java acessa um banco de dados via JDBC, são executados os seguintes passos: 1 – Carregar o driver JDBC; 2 – Abrir uma conexão com o banco de dados (schema); 3 – Encapsular o comando SQL em um objeto (Statement); 4 – Enviar o comando SQL para o DBMS através da conexão criada; 5 – Processar o resultado encaminhado pelo DBMS, se necessário; 6 – Encerrar a conexão.

10 28.2 Bancos de Dados Relacionais
Um Banco de Dados Relacional é uma representação lógica de dados que permite acessar os dados sem considerar a estrutura física; Armazena dados em Tabelas (compostas por Linhas, que são compostas por Colunas, que armazenam valores); Chave Primária (PK – Primary Key) — uma coluna (ou grupo de colunas) com um valor único que não pode ser duplicado em outras linhas, em cada tabela; Chave Estrangeira (FK – Foreign Key) – Permite relacionar diferentes tabelas.

11

12

13 28.3 Visão geral do banco de dados relacional: o banco de dados books
O banco de dados exemplo (books) consiste nas tabelas: Authors, AuthorISBN e Titles. Chave Estrangeira — coluna(s) em uma tabela que corresponde à(s) coluna(s) de chave primária em outra tabela, relacionando-as. Ajuda a manter a Regra de Integridade Referencial — cada valor de chave estrangeira em uma tabela deve aparecer como valor de chave primária em outra tabela; Há um relacionamento um para muitos entre uma chave primária e sua chave estrangeira correspondente; Fornecer um valor de FK que não aparece como um valor de PK em outra tabela quebra a regra de integridade referencial e faz com que o DBM informe um erro.

14

15

16

17

18

19

20 Diagrama de Relacionamento de Entidade (Entity- Relationship – ER)
Mostra graficamente as tabelas de banco de dados e as relações entre eles; Os nomes em itálico são chaves primárias; Permite que se modele o BD antes de construí-lo fisicamente; Regra de Integridade de Entidade. Uma chave primária da tabela identifica unicamente cada linha na tabela; Cada linha deve ter um valor de chave primária, e esse valor deve ser único na tabela.

21

22

23

24 28.4  SQL As várias subseções a seguir discutem as palavras-chave de SQL listadas na Figura 28.10 no contexto de consultas e instruções SQL. Há várias outras possibilidades. Esta é uma introdução simples; Outras palavras-chave de SQL estão além do escopo deste texto.

25

26 28.4.1 Consulta SELECT básica
Uma consulta de SQL “seleciona” linhas e colunas de uma ou mais tabelas em um banco de dados; Formato básico: SELECT * FROM nomeDaTabela em que o asterisco (*) indica que todas as colunas da tabela nomeDaTabela devem ser recuperadas; Para recuperar todos os dados na tabela Authors, utilize SELECT * FROM Authors Para recuperar somente colunas específicas de uma tabela, substitua o asterisco (*) por uma lista dos nomes de coluna, separados por vírgulas SELECT AuthorID, LastName FROM Authors

27

28

29

30 28.4.2  Cláusula WHERE Em vários casos, apenas linhas que atendem aos critérios de seleção são necessárias; SQL utiliza a cláusula WHERE opcional em uma consulta para especificar os critérios de seleção; Forma básica de uma consulta com critérios de seleção: SELECT nomeDaColuna1, nomeDaColuna2, … FROM nomeDaTabela WHERE critérios Para selecionar as colunas Title, EditionNumber e Copyright da tabela Titles para a qual a data do Copyright é maior que 2005, use a consulta: SELECT Title, EditionNumber, Copyright FROM Titles WHERE Copyright > '2005'

31 As strings em SQL são delimitadas por aspas simples (') em vez de aspas duplas (").
Os critérios da cláusula WHERE podem conter os operadores <, >, <=, >=, =, <> e LIKE.

32 O operador LIKE é usado para correspondência de padrão com os curingas percentagem (%) e sublinhado (_). % - aceitar qualquer quantidade de caracteres na posição do ‘%’; _ - cada sublinhado indica 1 único caracter de qualquer tipo; Em outras linguagens, os símbolos podem ser diferentes; Exemplo: retornar as linhas de todos os autores cujo sobrenome começa com a letra D: SELECT AuthorID, FirstName, LastName FROM Authors WHERE LastName LIKE 'D%'

33

34

35

36 Exemplo: retornar as linhas de todos os autores cujos sobrenomes começam com qualquer caractere (especificado por _), seguido pela letra o, seguida por qualquer número de caracteres adicionais (especificado por %): SELECT AuthorID, FirstName, LastName FROM Authors WHERE LastName LIKE '_o%'

37

38 28.4.3  Cláusula ORDER BY O resultado de uma consulta podem ser classificadas em ordem crescente ou decrescente através da cláusula ORDER BY; Formato básico : SELECT nomeDaColuna1, nomeDaColuna2, … FROM nomeDaTabela ORDER BY coluna ASC / DESC ASC especifica a ordem ascendente (do mais baixo para o mais alto); DESC especifica ordem descendente (do mais alto para o mais baixo); coluna especifica a coluna em que a classificação é baseada.

39 Para obter a lista de autores em ordem crescente por sobrenome ():
SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName ASC Para obter a lista de autores em ordem decrescente por sobrenome (): SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName DESC Múltiplas colunas podem ser utilizadas para classificação. ORDER BY coluna1 ASC / DESC, coluna2 ASC / DESC , … Classifica todas as linhas em ordem crescente por sobrenome, e depois por nome. SELECT AuthorID, FirstName, LastName FROM Authors ORDER BY LastName, FirstName

40

41

42

43 As cláusulas WHERE e ORDER BY podem ser combinadas para realizar consultas mais restritas, como em
SELECT ISBN, Title, EditionNumber, Copyright FROM Titles WHERE Title LIKE '%How to Program' ORDER BY Title ASC que retorna o ISBN, Title, EditionNumber e Copyright de cada livro na tabela Titles que tem um Title terminando com "How to Program" e os classifica em ordem crescente por Title.

44

45 28.4.4 Mesclando dados a partir de múltiplas tabelas: INNER JOIN
É prática-comum dividir dados relacionados em tabelas separadas para assegurar que um banco de dados não armazene dados de maneira redundante; Assim, é frequente mesclar dados de múltiplas tabelas em um único resultado. Isso é chamado de junção, ou join, de tabelas. Uma INNER JOIN mescla linhas de duas tabelas correspondendo valores em colunas que são comuns às tabelas. SELECT nomeDaColuna1, nomeDaColuna2, … FROM tabela1 INNER JOIN tabela ON tabela1.nomeDaColuna = tabela2.nomeDaColuna A cláusula ON especifica as colunas de cada tabela que são comparadas para determinar as linhas que são mescladas.

46 A consulta a seguir produz uma lista de autores acompanhados pelos ISBNs de livros escritos por cada autor: SELECT FirstName, LastName, ISBN FROM Authors INNER JOIN AuthorISBN ON Authors.AuthorID = AuthorISBN.AuthorID ORDER BY LastName, FirstName A sintaxe nomeDaTabela.nomeDaColuna na cláusula ON, chamada de nome qualificado, especifica as colunas de cada tabela que devem ser comparadas para mesclar as tabelas.

47

48

49

50 28.4.5 Instrução INSERT A instrução INSERT insere uma linha em uma tabela. INSERT INTO nomeDaTabela (nomeDaColuna1, nomeDaColuna2, …, nomeDaColunaN) VALUES ( valor1, valor2, …, valorN ) onde nomeDaTabela é a tabela na qual inserir a linha. nomeDaTabela é seguido por uma lista separada por vírgulas de nomes de coluna entre parênteses. Tal lista não necessária se a operação INSERT especificar um valor para cada coluna da tabela na ordem correta A lista de nomes de coluna é seguida pela palavra-chave de SQL VALUES e uma lista separada por vírgulas de valores entre parênteses. Os valores especificados aqui devem corresponder às colunas especificadas depois do nome da tabela tanto em ordem como em tipo.

51 A instrução INSERT INSERT INTO Authors (FirstName, LastName) VALUES ( 'Sue', 'Smith' ) A instrução acima indica que os valores são fornecidos para as colunas FirstName e LastName. Os valores correspondentes são 'Sue' e 'Smith‘; Não especificamos um AuthorID nesse exemplo porque AuthorID é uma coluna autoincrementada na tabela Authors; Nem todo sistema de gerenciamento de bancos de dados suporta colunas auto-incrementadas.

52

53

54

55 28.4.6 Instrução UPDATE Uma instrução UPDATE modifica os dados em uma tabela. UPDATE nomeDaTabela SET nomeDaColuna1 = valor1, nomeDaColuna2 = valor2, …, nomeDaColunaN = valorN WHERE critérios onde nomeDaTabela é a tabela a atualizar. nomeDaTabela é seguido pela palavra-chave SET e uma lista separada por vírgulas de pares nome/valor de coluna, no formato nomeDaColuna = valor. A cláusula WHERE fornece critérios que determinam quais linhas atualizar; Exemplo: UPDATE Authors SET LastName = 'Jones' WHERE LastName = 'Smith' AND FirstName = 'Sue' indica que LastName receberá o valor Jones para a linha em que LastName é igual a Smith e FirstName é igual a Sue.

56

57 28.4.7 Instrução DELETE Uma instrução DELETE remove as linhas de uma tabela. DELETE FROM nomeDaTabela WHERE critérios onde nomeDaTabela é a tabela a partir da qual excluir; A cláusula WHERE opcional especifica os critérios utilizados para determinar quais linhas excluir. Se essa cláusula for omitida, todas as linhas da tabela serão excluídas. Exemplo: DELETE FROM Authors WHERE LastName = 'Jones' AND FirstName = 'Sue' exclui a linha para Sue Jones na tabela Authors.

58


Carregar ppt "Capítulo 28 Acessando bancos de dados com o JDBC"

Apresentações semelhantes


Anúncios Google