Slide 1
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 2
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 3
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 4
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 5
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 6
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 7
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

Qualquer variável local que for utilizada em uma classe interna
anônima deve ser declarada final, caso contrário, ocorre um
erro de compilação;

A classe TableRowSorter (do pacote javax.swing.table) pode
ser usada para classificar linhas em uma JTable;

Quando o usuário clicar no título de determinada coluna JTable,
o TableRowSorter interage com o TableModel subjacente
para reordenar as linhas com base nos dados dessa coluna;

O método JTable setRowSorter() especifica o
TableRowSorter para JTable.
Slide 11
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

JTables podem mostrar agora subconjuntos dos dados do
TableModel subjacente. Isso é conhecido como filtragem de
dados;

O método JTable setRowFilter() especifica um RowFilter
(do pacote javax.swing) para um Jtable;

O método RowFilter static regexFilter() recebe uma
String contendo um padrão de expressão regular como seu
argumento e um conjunto opcional de índices que especifica quais
colunas filtrar.
◦ Se nenhum índice for especificado, então todas as colunas são
pesquisadas.
Slide 12
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 13
A interface RowSet fornece vários métodos set que permite
especificar as propriedades necessárias para estabelecer uma
conexão e criar um Statement;
RowSet também fornece vários métodos get que retornam essas
propriedades;
Tipos de objetos RowSet: conectado e desconectado;
◦ Um objeto RowSet conectado conecta-se ao banco de dados
uma vez e permanece conectado enquanto o objeto estiver em
uso;
◦ Um objeto RowSet desconectado conecta-se ao banco de
dados, executa uma consulta para recuperar os dados do banco
de dados e depois fecha a conexão.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

Slide 14
Um programa pode alterar os dados em um RowSet
desconectado enquanto ele estiver desconectado.
◦ Dados modificados podem ser atualizados no banco de dados
depois que um RowSet desconectado restabelecer a conexão
com o banco de dados.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

O pacote javax.sql.rowset contém duas subinterfaces de RowSet —
JdbcRowSet e CachedRowSet;

JdbcRowSet, um RowSet conectado, atua como um empacotador em
torno de um objeto ResultSet e permite aos programadores percorrer
e atualizar as linhas no ResultSet;
Um objeto JdbcRowSet é rolável e atualizável por padrão;




Slide 15
CachedRowSet, um RowSet desconectado, armazena os dados em
cache de um ResultSet na memória e desconecta-se do banco de
dados.
Um objeto CachedRowSet é rolável e atualizável por padrão.
Também é serializável, então ele pode ser passado entre aplicativos Java
por uma rede, como a Internet.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 16
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 17
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 18
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 19
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 20
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

O pacote com.sun.rowset fornece implementações de referência da
Sun para as interfaces no pacote javax.sql.rowset;

A implementação de referência da Sun da interface JdbcRowSet é
JdbcRowSetImpl;

Alguns bancos de dados podem fornecer suas próprias implementações
de RowSet;

O método JdbcRowSet setUrl() especifica o URL do BD;
O método JdbcRowSet setUsername() especifica o nome de
usuário;
O método JdbcRowSet setPassword() especifica a senha;
O método Jdbc-RowSet setCommand() especifica a consulta SQL
que será usada para preeencher o RowSet.



Slide 21
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education

O método JdbcRowSet execute() executa a consulta SQL;

O método execute() realiza quatro ações:
◦ Estabelece uma Connection com o banco de dados;
◦ Prepara a consulta Statement;
◦ Executa a consulta;
◦ Armazena o ResultSet retornado pela consulta;

As consultas Connection, Statement e ResultSet são
encapsuladas no objeto JdbcRowSet;


Slide 22
O método JdbcRowSet close() fecha as consultas ResultSet,
Statement e Connection do RowSet encapsulado.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education






Slide 23
No JDK 6, o banco de dados “puro Java” de código-fonte aberto Java DB (a versão
com a marca Sun do Apache Derby) vem com o JDK.
Usamos o Java DB para demonstrar PreparedStatements.
Antes de poder executar o aplicativo na próxima seção, você deve configurar o
banco de dados AddressBook no Java DB.
Utilizamos a versão integrada do Java DB.
Há também uma versão de rede que executa de modo semelhante ao DBMS
MySQL introduzido anteriormente no capítulo.
Visite developers.sun.com/javadb/reference/docs/ e leia “Getting
Started with Java DB” para obter instruções de instalação e configuração.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education


Slide 24
O Java DB vem com vários arquivos em lote para configurá-lo e executá-lo.
Deve configurar a variável de ambiente JAVA_HOME para consultar primeiro
diretório de instalação do JDK.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education







Slide 25
Instruções para Windows:
Abra o arquivo em lote setEmbeddedCP.bat (localizado em C:\Program
Files\Sun\JavaDB\bin), localize a linha
 @rem set DERBY_INSTALL=
e mude-a para
 @set DERBY_INSTALL=C:\Program Files\Sun\JavaDB
Abra um prompt de comando e use o comando para mudar os diretórios para
C:\Program Files\Sun\JavaDB\bin. Então, digite
setEmbeddedCP.bat e pressione Enter para configurar as variáveis de
ambiente requeridas pelo Java DB.
Mude para o diretório que contém o código desse exemplo. Esse diretório contém
um script SQL address.sql que constrói o banco de dados AddressBook.
Execute o comando
 "C:\Program Files\Sun\JavaDB\bin\ij"
para iniciar a ferramenta de linha de comando para interagir com o Java DB.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 26
No prompt ij>, digite
 connect
'jdbc:derby:AddressBook;create=true;user=deitel;pass
word=deitel';
para criar o banco de dados AddressBook no diretório atual. Esse comando
também cria o usuário deitel com a senha deitel para acessar o banco de
dados.
Para criar a tabela de banco de dados e inserir dados de exemplo no banco de
dados, digite
 run 'address.sql'
Para terminar a ferramenta de linha de comando Java DB, digite
 exit;
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 27
A interface PreparedStatement permite criar instruções SQL compiladas que
executam mais eficientemente do que os objetos Statement.
Pode também especificar parâmetros, tornando-os mais flexíveis do que as
Statements.
Os programas podem executar a mesma consulta repetidamente com valores de
parâmetro diferentes.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education


Slide 28
Para localizar todos os títulos de livro de um autor com um sobrenome e um nome
específicos:
PreparedStatement authorBooks =
connection.prepareStatement(
"SELECT LastName, FirstName, Title " +
"FROM Authors INNER JOIN AuthorISBN " +
"ON Authors.AuthorID=AuthorISBN.AuthorID " +
"INNER JOIN Titles " +
"ON AuthorISBN.ISBN=Titles.ISBN " +
"WHERE LastName = ? AND FirstName = ?" );
Os dois pontos de interrogação (?) são um espaço reservado para valores que serão
passados como parte da consulta ao banco de dados.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education




Slide 29
Antes de executar uma PreparedStatement, o programa deve especificar os
valores de parâmetro utilizando os métodos set da interface
PreparedStatement.
Para a consulta anterior, ambos os parâmetros são strings que podem ser
configuradas com o método PreparedStatement setString como mostrado a
seguir:
 authorBooks.setString( 1, "Deitel" );
authorBooks.setString( 2, "Paul" );
Os números de parâmetro são contados a partir de 1, iniciando com o primeiro
ponto de interrogação (?).
A interface PreparedStatement fornece métodos set para cada tipo SQL
suportado.
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
Nosso banco de dados Java DB AddressBook contém uma tabela Addresses
com as colunas addressID, FirstName, LastName, Email e
PhoneNumber.
A coluna addressID é a chamada coluna de identidade.
Essa é a maneira padrão SQL para representar uma coluna autoincrementada.
O script SQL que fornecemos para esse banco de dados utiliza a palavra-chave
IDENTITY de SQL para marcar a coluna addressID como uma coluna de
identidade.
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
Invoque o método Connection prepareStatement para criar uma
PreparedStatement.
Chamar o método PreparedStatement executeQuery retorna um
ResultSet contendo as linhas que correspondem à consulta.
O método PreparedStatement executeUpdate executa a instrução SQL que
modifica o banco de dados.
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
Slide 42
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 43
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 44
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 45
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 46
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 47
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 48
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 49
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 50
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 51
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 52
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 53
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 54
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 55
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 56
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 57
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 58
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 59
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 60
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 61
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 62
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 63
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 64
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 65
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education






Slide 66
Muitos sistemas de gerenciamento de bancos de dados podem armazenar instruções
de SQL individuais ou conjuntos de instruções de SQL em um banco de dados, de
modo que os programas que acessam esse banco de dados possam invocá-las.
Tais coleções identificadas de instruções SQL são chamadas de procedures
armazenadas.
O JDBC permite aos programas invocar procedures armazenadas usando objetos
que implementam a interface CallableStatement.
Além disso, CallableStatements podem especificar parâmetros de saída
em que uma procedure armazenada pode colocar valores de retorno.
A interface também inclui métodos para obter os valores de parâmetros de saída
retornados de uma procedure armazenada.
Para aprender mais sobre CallableStatements, visite
 java.sun.com/javase/6/docs/technotes/guides/jdbc/get
start/
callablestatement.html#999652
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 67
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Slide 68
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education






Slide 69
Muitos aplicativos do banco de dados impõem garantias de que uma série de
inserções, atualizações e exclusões no banco de dados executem corretamente antes
de os aplicativos continuarem o processamento da próxima operação de banco de
dados.
O processamento de transação permite que um programa que interage com um
banco de dados trate uma operação de banco de dados (ou conjunto de operações)
como uma operação única.
Essa operação também é conhecida como operação atômica ou transação.
No fim de uma transação, pode-se tomar a decisão de confirmar a transação ou
reverter a transação.
Confirmar a transação finaliza a(s) operação(ões) de banco de dados.
A reversão da transação deixa o banco de dados no seu estado anterior à operação
de banco de dados.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education



Slide 70
O método Connection setAutoCommit especifica se cada instrução SQL é
confirmada depois de ser completada (um argumento true) ou se várias instruções
SQL devem ser agrupadas como uma transação (um argumento false).
Se o argumento para setAutoCommit for false, o programa deve seguir a
última instrução SQL na transação com uma chamada para o método
Connection commit ou método Connection rollback.
A interface Connection também fornece o método getAutoCommit para
determinar o estado autocommit para Connection.
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson Education
Download

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