



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/installingcs.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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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:

Slide 2
Jdk \ jre \ lib \ ext
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education





Slide 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education




Slide 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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;

Slide 5
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 -p
A 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

Slide 7
O programa a seguir ilustra a conexão com o banco de dados,
consultando o banco de dados e processando o resultado.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 8
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 9
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 10
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 11
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education




Slide 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\mysqlconnector-java-5.1.7-bin.jar
DisplayAuthors
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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.
Slide 14
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 15
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 16
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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.

Slide 17
O método ResultSetMetaData getColumnCount() recupera o
número de colunas no ResultSet.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 18
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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.


Slide 19
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;
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 20
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 21
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 22
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 23
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 24
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 25
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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;
Slide 26
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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),
Slide 27
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 28
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 29
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 30
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 31
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 32
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 33
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 34
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 35
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 36
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education





Slide 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.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 38
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 39
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 40
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 41
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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;

Slide 42
O método ResultSetResultSet absolute() posiciona o
cursor ResultSet em uma linha específica.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

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.
Slide 43
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Download

livro.Java-Como Programar.8ed.capitulo 28.slides