Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0...

43
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos de Dados de código-fonte aberto que executa em muitas plataformas, incluindo Windows, Solaris, Linux e Macintosh; Mais informações em www.mysql.com. Para instalar o MySQL Community Edition: Requisitos: dev.mysql.com/doc/refman/5.0/en/installing- cs.html Download: dev.mysql.com/downloads/mysql/5.0.html Execute o instalador; Escolha Typical para Setup Type; Para configurar o servidor selecione Standard Configuration.

Transcript of Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0...

Page 1: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 1

MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos de Dados de código-fonte aberto que executa em muitas plataformas, incluindo Windows, Solaris, Linux e Macintosh;

Mais informações em www.mysql.com. Para instalar o MySQL Community Edition:◦ Requisitos:

dev.mysql.com/doc/refman/5.0/en/installing-cs.html

◦ Download: dev.mysql.com/downloads/mysql/5.0.html

◦ Execute o instalador; ◦ Escolha Typical para Setup Type;

Para configurar o servidor selecione Standard Configuration.

Page 2: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 2

Para utilizar o MySQL com o JDBC, é preciso instalar o MySQL Connector/J — driver JDBC que permite aos programas acessar bancos de dados MySQL via JDBC;

Download a partir de: dev.mysql.com/downloads/connector/j/5.1.html

Documentação: dev.mysql.com/doc/connector/j/en/connector-j.html.

Diretório no qual descarregar o arquivo .jar do driver em questão: Jdk \ jre \ lib \ ext

Page 3: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 3

Para que os exemplos executem corretamente, é preciso configurar uma conta de usuário que permita aos usuários criar, excluir e modificar um banco de dados;

Abra um prompt de comando e inicie o servidor do bancos de dados executando o comando mysqld-nt.exe. Notar que esse comando não tem saída — ele simplesmente inicia o servidor MySQL. Não feche essa janela — isso encerra o servidor;

Inicie o monitor MySQL para poder configurar uma conta de usuário, abrir outro prompt de comando e executar o comando mysql -h localhost -u root;

A opção -h indica o host no qual o servidor MySQL está executando — nesse caso o computador local (localhost);

A opção -u indica a conta de usuário que será utilizada para fazer login no servidor — root é a conta de usuário padrão criada durante a instalação para permitir que configure o servidor.

Page 4: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 4

No prompt mysql>, digite USE mysql;para selecionar o banco de dados predefinido chamado mysql;

Adicione a conta de usuário deitel ao banco de dados predefinido. Execute os seguintes comandos no prompt mysql>:

create user 'deitel'@'localhost' identified by 'deitel‘;grant select, insert, update, delete, create, drop, references, execute on *.* to 'deitel'@'localhost';

◦ Isso cria o usuário deitel com os privilégios necessários para criar os bancos de dados utilizados neste capítulo e manipulá-los;

Digite o comando exit;para terminar o monitor MySQL.

Os passos anteriores podem ser executados através de uma ferramenta administrativa.

Page 5: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 5

Para cada banco de dados MySQL discutido, é fornecido um script SQL em um arquivo .sql, que configura o banco de dados e suas tabelas. Pode-se executar esses scripts no monitor MySQL;

Para executar o script books.sql: Abra um prompt de comando e use o comando para mudar os

diretórios para o local que contenha o script books.sql; Inicie o monitor MySQL digitando:

mysql -h localhost -u deitel -pA opção -p solicita a senha para a conta de usuário deitel. Quando

solicitado, insira a senha deitel; Execute o script digitando source books.sql;

Isso cria um novo diretório chamado books no diretório data do servidor

Digite exit; para terminar o monitor MySQL monitor.

Page 6: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 6

Nesta seção, apresentamos dois exemplos; O primeiro exemplo introduz como se conectar a um banco de

dados e consultá-lo; O segundo exemplo demonstra como exibir o resultado da

consulta em um componente JTable.

Page 7: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 7

O programa a seguir ilustra a conexão com o banco de dados, consultando o banco de dados e processando o resultado.

Page 8: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 8

Page 9: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 9

Page 10: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 10

Page 11: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 11

Page 12: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 12

O URL do banco de dados identifica o nome do banco de dados ao qual se conectar, bem como informações sobre o protocolo utilizado pelo driver JDBC;

O JDBC 4.0 suporta a Descoberta de Driver Automática.◦ Não é mais necessário carregar antes o driver de banco de dados.

Para assegurar que o programa pode localizar a classe de driver, deve-se incluir a localização da classe no classpath do programa ao executá-lo;

Inclua o arquivo mysql-connector-java-5.1.7-bin.jar (no diretório C:\mysql-connector-java-5.1.7) no classpath do programa, como em:

java -classpath .;c:\mysql-connector-java-5.1.7\mysql-connector-java-5.1.7-bin.jar DisplayAuthors

Page 13: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 13

Um objeto que implementa a interface Connection gerencia a conexão entre o programa Java e o banco de dados;

Os objetos Connection permitem que os programas criem instruções SQL que manipulam o banco de dados;

O método DriverManager static getConnection() tenta se conectar ao banco de dados especificado pelo URL; ◦Argumentos:

uma String que especifica o URL do banco de dados; uma String que especifica o login do usuário; uma String que especifica a senha do usuário.

Page 14: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 14

O URL jdbc:mysql://localhost/books especifica:◦O protocolo de comunicação (jdbc);◦O subprotocolo para comunicação (mysql);◦A localização do banco de dados (//localhost/books,

onde localhost é o host executando o servidor MySQL e books é o nome do banco de dados/schema);

O subprotocolo mysql indica que o programa utiliza um subprotocolo específico ao MySQL para conectar-se ao banco de dados MySQL.

Page 15: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 15

Page 16: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 16

Page 17: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 17

O método Connection createStatement() gera um objeto que implementa a interface Statement (pacote java.sql). ◦ Usado para enviar instruções SQL para o banco de dados.

O método executeQuery() do objeto Statement envia uma consulta para o banco de dados. ◦ Retorna um objeto que implementa a interface ResultSet (contém os resultados

da consulta); Os métodos de ResultSet permitem que o programa manipule o

resultado da consulta. O ResultSetMetaData de um ResultSet descreve o conteúdo

do ResultSet. ◦ Pode ser usado programaticamente para obter informações sobre nomes de coluna e

tipos do ResultSet. O método ResultSetMetaData getColumnCount() recupera

o número de colunas no ResultSet.

Page 18: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 18

Page 19: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 19

A primeira chamada para o método ResultSet next() posiciona o cursor do ResultSet na primeira linha.◦ Retorna o valor boolean true se for capaz de se posicionar na próxima linha; caso

contrário, o método retorna false;

O método ResultSetMetaData getColumnType() retorna um inteiro constante da classe Types (pacote java.sql) que indica o tipo de uma coluna especificada;

O método ResultSet getInt() retorna um valor de coluna como um int;

O método ResultSet getObject() retorna um valor de coluna como um Object.

Os métodos ResultSet get em geral recebem como um argumento um número de coluna (um int) ou um nome de coluna (uma String) indicando que o valor de qual coluna obter;

Page 20: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 20

Page 21: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 21

Page 22: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 22

Page 23: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 23

Page 24: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 24

Page 25: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 25

Page 26: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 26

O exemplo das Figuras 28.25 e 28.28 permite ao usuário inserir qualquer consulta no programa;

Exibe os resultados de uma consulta em uma JTable, usando um objeto TableModel para fornecer os dados ResultSet para o JTable;

JTable é um componente GUI Swing que pode ser vinculado a um banco de dados para exibir os resultados de uma consulta;

A classe ResultSetTableModel realiza a conexão com o banco de dados via uma TableModel e mantém o ResultSet;

Page 27: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 27

A classe DisplayQueryResults cria a GUI e especifica uma instância da classe ResultSetTableModel para fornecer dados a JTable;

A classe ResultSetTableModel sobrescreve os métodos TableModel getColumnClass(), getColumnCount(), getColumnName(), getRowCount() e getValueAt() (herdado de AbstractTableModel),

Page 28: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 28

Page 29: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 29

Page 30: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 30

Page 31: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 31

Page 32: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 32

Page 33: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 33

Page 34: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 34

Page 35: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 35

Page 36: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 36

Page 37: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 37

O método Connection createStatement() com dois argumentos recebe o tipo e a concorrência do ResultSet;

O tipo de conjunto de resultados especifica se o cursor do ResultSet é capaz de rolar em ambas as direções ou apenas encaminhar e se o ResultSet é sensível a alterações feitas nos dados subjacentes;

ResultSets que são sensíveis a alterações refletem essas modificações imediatamente depois de elas serem feitas com os métodos da interface ResultSet;

Se um ResultSet não for sensível a alterações, a consulta que produziu o ResultSet deve ser novamente executada para refletir qualquer alteração feita;

A concorrência do conjunto de resultados especifica se o ResultSet pode ser atualizado com os métodos de atualização do ResultSet.

Page 38: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 38

Page 39: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 39

Page 40: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 40

Page 41: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 41

Page 42: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 42

O método ResultSetMetaData getColumnClassName() obtém o nome de classe completamente qualificado da coluna especificada;

O método ResultSetMetaData getColumnCount() obtém o número de colunas no ResultSet;

O método ResultSetMetaData getColumnName() obtém o nome da coluna no ResultSet;

O método ResultSetResultSet absolute() posiciona o cursor ResultSet em uma linha específica.

Page 43: Deitel/Deitel, 8e. Java – Como programar Copyright © 2010 Pearson Education Slide 1 MySQL 5.0 Community Edition é um Sistema de Gerenciamento de Bancos.

Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 43

O método ResultSet last() posiciona o cursor ResultSet na última linha no ResultSet;

O método ResultSet getRow() obtém o número da linha atual no ResultSet;

O método fireTableStructureChanged() (herdado da classe AbstractTableModel) notifica qualquer JTable usando esse objeto ResultSetTableModel como seu modelo que a estrutura do modelo mudou.◦Faz com que a JTable preencha novamente suas linhas e

colunas com os novos dados de ResultSet data.