Professional Documents
Culture Documents
JAVA
EDIO N 1 - 2007
Gesto e Execuo
Contedo e Tecnologia
Apresentao
a)
Este livro didtico contm a disciplina de Programao Aplicada em Java.
b)
A programao em Java um assunto muito rico, com centenas de livros j
publicados, em vrios idiomas, desde o seu lanamento. Este material foi elaborado
para que voc conhea as propostas tecnolgicas da plataforma Java e obter sua
primeira experincia com a linguagem de programao.
c)
Voc ver que a convergncia dos assuntos que voc estudou at agora, iro
ser aplicados nas prximas pginas, principalmente sobre a programao orientada
a objetos, mtodo utilizado para o desenvolvimento de sistemas usando Java.
d)
O mtodo de estudo para este material evolutivo, medida que voc
avanar nos estudos, as informaes iro complementando as concluses do tpico
anterior. Diante do grande volume de informaes e das infinitas possibilidades da
plataforma Java, este material procura apresentar os aspectos mais relevantes para
o seu incio na construo de aplicaes em Java. Mas com certeza, no esgota o
assunto.
e)
importante ressaltar que o livro foi desenvolvido com o objetivo de
proporcionar-lhe um aprendizado independente, inerente aos estudos do EAD, e o
contedo foi revisado com o intuito de oferecer-lhe uma linguagem simples, objetiva
e estimulante.
f)
Lembre-se de que a sua passagem por esta disciplina ser tambm
acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax,
telefone, e-mail ou Ambiente Virtual de Aprendizagem.
g)
Entre sempre em contato conosco quando surgir alguma dvida ou
dificuldade.
h)
Toda a equipe ter a maior alegria em atend-lo, pois a sua aquisio de
conhecimento nessa jornada o nosso maior objetivo.
i)
Acredite no seu sucesso e bons momentos de estudo!
Equipe Tupy Virtual.
SUMRIO
CARTA DO PROFESSOR...........................................................................................4
CRONOGRAMA DE ESTUDOS..................................................................................6
PLANO DE ESTUDOS ................................................................................................7
AULA 1 - CONHECENDO A PLATAFORMA JAVA...................................................9
AULA 2 - SINTAXE, DADOS E OOP EM JAVA.......................................................29
AULA 3 - ESTRUTURAS DE PROGRAMAO......................................................58
AULA 4 - HERANA.................................................................................................76
AULA 5 - USANDO SWING E CRIANDO APPLETS................................................84
AULA 6 - TRABALHANDO COM OBJETOS..........................................................106
AULA 7 - JAVA COM BANCO DE DADOS............................................................123
Carta do Professor
SOCIESC Sociedade Educacional de Santa Catarina
Cronograma de Estudos
Acompanhe no cronograma abaixo os contedos das aulas, e atualize as
possveis datas de realizao de aprendizagem e avaliaes.
Semana
Carga horria
Aula
Data / Avaliao
Conhecendo a Plataforma
_/_ a _/_
Java
18
_/_ a _/_
24
Estruturas de Progamao
_/_ a _/_
12
Herana
_/_ a _/_
16
_/_ a _/_
Usando Swing e criando
16
Applets
_/_ a _/_
14
16
_/_ a _/_
Plano de Estudos
EMENTA
Instalando o Java
Strings e Arrays
Modificadores e Associao
Introduo herana
Distribuindo pacotes
Introduo ao JDBC
Objetivos da Disciplina
Geral
Implementar os princpios da orientao a objetos usando a linguagem
Java e aprender como implementar aplicaes Java usando os principais
recursos da plataforma.
Especficos
o Descrever os componentes da plataforma Java;
o Construir programas orientados a objetos usando a linguagem Java;
o Conhecer e desenvolver programas usando a sintaxe de comandos da
linguagem Java;
Aula 1
CONHECENDO A PLATAFORMA
JAVA
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
Contedos da aula
Acompanhe os contedos desta aula. Se voc preferir,
assinale os contedos na medida em que for estudando.
A plataforma Java;
O ambiente Java;
Tipos de programas;
As verses do Java;
10
Prezado(a) aluno(a),
Tem um ditado nos Estados Unidos assim: Voc precisa comer antes de
cozinhar. Voc precisa ouvir antes de ver. Voc precisa viajar antes de
dirigir. E voc precisa executar programas em um computador, antes de programar.
Eis o objetivo desta aula. Voc saber como a plataforma Java foi construda para
executar programas e quais os componentes disponveis que ajudam o programador
na elaborao de solues de tecnologia. Voc tambm aprender como instalar o
Java para programao e qual a instalao necessria para execuo de programas
feitos em Java.
Finalmente, voc conhecer as vrias verses que o Java possui e os
direcionamentos tecnolgicos que a plataforma est seguindo.
Boa Aula!
1 A PLATAFORMA JAVA
A tecnologia Java foi desenvolvida pela Sun Microsystems para que fosse
uma linguagem de programao orientada a objetos, como tambm uma plataforma
de desenvolvimento.
Uma plataforma um ambiente de hardware e software no qual um programa
executado. Algumas das plataformas mais populares so o Windows, Linux,
Solaris e o Macintosh. Algumas das plataformas existentes podem ser descritas
como uma combinao de sistema operacional com hardware.
Java difere da maioria das plataformas de mercado, pois se posiciona como
uma plataforma apenas de software, que executada SOBRE as plataformas
baseadas em hardware.
A tecnologia Java pode ser utilizada para a construo de sistemas
convencionais de negcios, como tambm para o desenvolvimento de sistemas
bseados na Internet. Algumas das vantagens que a linguagem de programao Java
oferece aos programadores desses dois tipos de aplicaes a sua segurana e a
sua capacidade de ser independente de arquitetura, o que significa permitir ao
programador a capacidade de construir programas em Java
executados em qualquer plataforma ou sistema operacional.
A plataforma Java possui dois componentes:
SOCIESC Sociedade Educacional de Santa Catarina
11
2 O AMBIENTE JAVA
Um programa Java pode ser executado em vrios tipos de computadores por
que ele no executa instrues diretamente no computador. Na verdade, executa o
programa em um computador virtual conhecido como Java Virtual Machine (JVM).
Voc pode escrever um programa Java usando qualquer editor de textos. O
arquivo contendo as instrues de programao em Java tambm conhecido como
cdigo-fonte. O compilador Java converte o cdigo-fonte em um tipo de arquivo
chamado
bytecode,
independente
de
plataforma.
Um
programa
chamado
12
13
14
4 AS VERSES DO JAVA
Desde 1995 a Sun vm lanando vrias verses do Java que resultado das
melhorias tecnolgicas e inovaes recebidas por profissionais do mundo todo e
tambm como consequncia de sua larga adoo.
15
Java
Platform,
Micro
Edition
(J2ME):
direcionada
para
os
as
ferramentas
para
compilao,
disponibilizao
16
k)
17
18
19
Windows 98, Windows NT 4.0, Windows ME, Windows XP, Windows 2000
e 2003. A verso 6 j suporta Windows Vista.
20
21
22
23
24
25
26
27
28
Sntese
Nesta aula voc aprendeu o que a plataforma Java, sua importncia e seus
componentes. Agora voc j consegue identificar quais as verses do Java e como
cada uma de suas verses esto orientadas para determinadas necessidades. Voc
tambm conheceu um pouco da histria da plataforma, extremamente resumida,
mas que lhe oferece uma viso de como as tecnologias envolvidas chegaram at a
verso atual da plataforma.
Um dos aspectos relevantes que voc pde aprender foi entender como se
iniciam os trabalhos no desenvolvimento de progamas em Java.
Na prxima aula, voc comear a conhecer a linguagem Java, suas regras e
padres. Ser trabalhado no seu primeiro programa em Java.
At l.
Exerccios Propostos
1) Qual a principal caracterstica da linguagem Java que a diferenciou das
demais linguagens na poca em foi lanada? Explique porque.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) Descreva as verses do Java e identifique qual a base para todas as outras.
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) Qual a importncia do uso de um IDE para programar em Java?
______________________________________________________________
______________________________________________________________
__________________________________________________
SOCIESC Sociedade Educacional de Santa Catarina
Aula 2
Contedos da aula
Acompanhe os contedos desta aula. Se voc preferir,
assinale os contedos na medida em que for estudando.
Sintaxe;
29
30
Prezado(a) aluno(a),
Nesta aula voc aprender os elementos bsicos da linguagem Java,
especificamente suas regras de sintaxe e como um programa
organizado. Voc j estudou sobre Lgica de Programao e os conceitos sobre
Orientao a Objetos, agora voc ir colocar em prtica os assuntos, utilizando a
linguagem Java.
Boa Aula!
1 SINTAXE
A sintaxe de uma linguagem determina a forma como os programas devem
ser construdos. A linguagem Java possui um grande conjunto de regras, mas no
muito diferente das demais linguagens orientadas a objetos. Tambm importante
observar que alguns IDEs mais avanados j facilitam na digitao das instrues, j
que fornecem ajuda e autocomplementao de cdigo, de acordo com um
determinado contexto.
A linguagem Java, quanto sintaxe, similar s linguagens C e C++, mas
com uma srie de melhorias e agregaes, principalmente no que se refere aos
recursos orientados a objetos.
A maioria dos autores consideram que o melhor caminho para aprender a
sintaxe do Java avaliando um programa simples. Vamos utilizar o programa
apresentado na aula anterior para testarmos o ambiente de desenvolvimento Java
que configuramos.
1 /**
2 /**
3
* @(#)Exemplo.java
* @author
*/
9
10 public class Exemplo {
11
12
/**
13
14
*/
15
public Exemplo() {
16
31
17
18
/**
19
20
*/
21
22
Java);
23
24 }
32
33
ser armazenado na memria, mas obviamente outras classes podero ter seus
prprios mtodos main ( ).
A palavra void, basicamente, significa vazio. Quando a palavra void
utilizada na declarao do mtodo main ( ), no significa que o mtodo esteja vazio,
mas que no retornar nenhum valor quando for chamado. No significa que no
poder produzir sada de dados, na verdade, o mtodo no enviar qualquer valor
de retorno para o outro ponto de cdigo que o chamou.
Nem todas as classe possuem um mtodo main ( ), a grande maioria no
possui, porm, todas as aplicaes Java precisam conter um mtodo main( ), j que
o compilador ou a JVM ir executar primeiro o mtodo main( ) da aplicao.
Finalmente, avaliando o mtodo, existem parmetros estabelecidos no
mtodo main( ). O contedo entre parnteses determina os argumentos que
devero ser passados para o mtodo, quando for chamado. A palavra String
representa uma classe Java que pode ser usada para representar strings de
caracteres, e os smbolos de colchetes ([ ]) que acompanham a palavra, significam
que a string um array. O identificador args usado para controlar qualquer valor
String que seja enviado para o mtodo Main. Essa palavra no obrigatria, mas
tradicional na implementao do mtodo main( ).
A linha executvel de fato no programa a correspondente ao nmero da
linha 21. Seu contedo :
System.out.println(Exemplo de teste para o ambiente Java);
34
A palavra out refere-se a um objeto de uma classe base do Java, que tem por
finalidade apoiar as operaes de tela. No caso, o mtodo println membro do
objeto out, mas outros objetos tambm podem conter um mtodo com o mesmo
nome e finalidade.
A palavra System uma classe. O objeto out faz parte da classe system,
que parte integrante no ncleo de classes do Java. Um ponto importante a
observar que a linguagem Java case sensitive, ou seja, textos digitados em
maisculas e minsculas so diferentes. Por isso, fundamental que voc observe
as regras de digitao de determinado membro da linguagem.
Finalmente, os pontos que se apresentam entre os elementos da instruo
definem a hierarquia dos elementos na estrutura de classes do Java, que, nesse
caso, segue: nome da classe, ponto, nome do objeto, ponto, nome do mtodo.
1.1 Classes Java
Tudo o que voc utiliza em Java faz parte de uma classe. Quando voc est
declarando uma classe, conforme vimos no exemplo do tpico anterior, a linha
public class Exemplo representa a criao de uma classe. A palavra Exemplo
define o identificador da classe e precisa seguir as seguintes regras:
Um nome de uma classe no pode ser uma das seguintes palavras: true,
false ou null;
35
1.2 Comentrios
Como voc pde observar, um simples programa Java recebe um grande
nmero de linhas de cdigo. Grandes programas que executam diversas tarefas
incluem um grande volume de cdigo, o que dificulta ainda mais a sua clareza.
Os comentrios nos programas so instrues que voc insere no seu
programa e servem para a sua documentao. Os programadores utilizam
comentrios para inserir informaes relevantes sobre o que est sendo realizado
nas prximas linhas ou na linha atual, facilitam a clareza do programa, ajudando-o a
registrar detalhes que muitas vezes ficam apenas na cabea do programador.
Como melhores prticas de mercado, colocar comentrios no incio de uma
classe, descrevendo o prposito da classe, documentao sobre seus parmetros, o
nome do autor e o controle de verso, so muito comuns. Alm disso, tambm como
prtica comum, inserir no incio de cada membro da classe (mtodos, propriedades e
eventos) uma breve descrio de sua finalidade.
Existem trs tipos de comentrios na linguagem Java:
36
Exemplos de comentrios:
// Exemplo de comentrio de uma linha
System.out.println(Teste); //Exemplo de comentrio de linha
/*
Exemplo de comentrio de bloco
*/
/**
* Programa para exemplificar o javadoc.
*/
public class HelloInternet
{
/**
* Mtodo <code>main</code>. Determina o incio da execuo.
* @param args Recebe um array de elementos do tipo String que
*
*/
public static void main (String args[])
{
37
System.out.println("Hello Internet!");
}
}
38
39
O nome de classes deve comear com letra maiscula (por exemplo: class
Banco);
40
int TempoCompra;
2.1 Constantes
41
do
tamanho
maior
dos
dados
que
podero
ser
42
43
44
1. double;
2. float;
3. long;
4. int;
5. short;
6. byte.
Voc pode explicitamente sobrepor a unificao dos tipos impondo ao
compilador Java executar uma operao chamada cast (coero). Com o Type
casting o programador assume o risco da converso dos tipos de dados envolvidos
na expresso. O operador cast possui maior precedncia sobre os demais
operadores.
public class ExemploCast
{
public static void main(String[] args){
boolean t = true;
byte b = 2;
short s = 100;
char c = 'C';
int i = 200;
long l = 24000;
float f = 3.14f;
double d = 0.000000000000053;
String g = "Texto";
System.out.println("Os valores comuns das variveis ");
System.out.println("t = " + t );
System.out.println("b = " + b );
System.out.println("s = " + s );
System.out.println("c = " + c );
System.out.println("i = " + i );
System.out.println("l = " + l );
System.out.println("f = " + f );
System.out.println("d = " + d );
System.out.println("g = " + g );
System.out.println();
//Convertendo de booleando para byte
b = (byte)(t?1:0);
System.out.println("Valor de b aps converso: " + b);
45
46
47
O nome do mtodo;
A lista de parmetros do mtodo, entre parentses e separados por pontoe-vrgula. No exemplo, no existem parmetros e por isso a declarao
apresenta apenas os parnteses sem contedo;
48
49
Quando voc realiza a chamada para um mtodo, essa instruo deve conter
o nome do mtodo e os seus parmetros, na ordem que foram estabelecidos e
separados por ponto-e-vrgula.
50
51
so associados e todo objeto, que uma instncia de uma classe, assume-se que
possui os mesmos mtodos.
As classes definem a estrutura e o comportamento de um determinado tipo de
objeto. Na verdade, podemos consider-las como modelos de objetos e sua
composio pode ser reutilizada por objetos derivados, o que so chamados de
instncias do objeto.
Ao criar uma classe, voc precisa atribuir um nome para ela e determinar os
mtodos e os dados que faro parte da classe, tambm conhecidos como membros.
Para criar uma classe, a declarao pode conter:
52
53
objeto, pois contm informaes sobre como o objeto possui informaes, como
deve ser utilizado e como deve ser identificado.
O processo de criao de um objeto, ou instanciao de uma classe,
conduzido atravs de dois passos. Ao declarar uma varivel, voc determina o tipo
de dados que ela dever conter e um identificador, referncia nomeada da memria
que possuir o dado armazenado. Quando voc declara uma varivel do tipo inteiro
(int), o compilador est sendo notificado de que um valor inteiro ser armazenado na
rea de memria.
A mesma operao realizada quando estamos criando um objeto. Na sua
declarao, a primeira informao que precisa ser passada ao compilador o nome
da classe que ser utilizada para compor o objeto.
Funcionario exemploFunci = new Funcionario();
54
3.4 Construtores
Quando voc cria uma classe e uma instncia dessa classe, ou cria um
objeto, como vimos, voc est chamando um mtodo construtor que possui o
mesmo nome da classe que, por sua ausncia, o compilador Java cria
automaticamente. Um mtodo construtor o responsvel pela criao do objeto,
mas comum a necessidade de interferir no processo de criao, principalmente
para reforar determinadas regras que a classe pode precisar manter.
55
56
Sntese
Nesta aula tivemos a grande oportunidade de conhecer a aplicao da OOP
em Java. a unio dos conceitos que voc j aprendeu com a prtica da
implementao de classes e objetos em Java.
Na prxima aula voc aprender mais detalhes para a construo do corpo de
instrues em linguagem Java, com o uso de estruturas de dados.
As peas vo se encaixando cada vez mais, na direo de aplicaes mais
complexas em Java.
At l.
57
Exerccios Propostos
1) .Por que devemos utilizar modificadores na declarao campos em uma
classe?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) Qual a necessidade do Garbage Collection?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) O que um mtodo construtor?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
Aula 3
ESTRUTURAS DE PROGRAMAO
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
Contedos da aula
Acompanhe os contedos desta aula. Se voc preferir,
assinale os contedos na medida em que for estudando.
Controle de fluxo;
Operadores lgicos;
Strings;
Arrays
58
59
Prezado(a) aluno(a),
Nesta aula voc aprender a trabalhar com blocos de programao em
Java. Vamos inicialmente falar sobre as princpais caractersticas para
trabalhar com blocos de cdigo e suas particularidades. Depois vamos tratar das
estruturas convencionais de lgica, como controle de fluxo e loops. Finalmente,
vamos dar uma ateno especial nos trabalhos com strings e arrays.
Perceba que na maioria do contedo desta aula, vamos aplicar os conceitos de
lgica de programao e OOP, que voc j aprendeu, usando a linguagem Java e
entendendo suas regras e sintaxe.
Boa Aula!
60
61
62
2 CONTROLE DE FLUXO
As declaraes de controle de fluxo em Java so usadas para alterar o fluxo
seqencial das instrues de um programa. Como voc j aprendeu, as condies
lgicas impostas para os programas tm por finalidade determinar resultados lgicos
e executar determinadas aes de acordo com a condio apresentada. A
63
linguagem Java oferece todo o suporte s prticas mais comuns para a construo
de lgica condicional nos programas.
2.1 IF, IF...ELSE e IF...ELSE-IF...ELSE
O processo de deciso no programa envolve a avaliao de um determinado
elemento e, de acordo com seu resultado lgico, pode conduzir a caminhos
diferentes de execuo do programa. A instruo IF, em Java, permite que voc
avalie uma determinada condio e, de acordo com o resultado, o bloco de cdigo
ser executado ou no. Esse o exemplo de uma condio simples.
Voc pode ainda acrescentar o tratamento da condio FALSA, usando a
palavra chave ELSE. Com esse tipo de implementao voc ter dois blocos de
cdigo: um para o caso do resultado verdadeiro da condio lgica aplicada e outro
para o resultado falso.
Por exemplo:
public class UsoIF
{
public static void main (String args[])
{
int a = 10;
int b = 20;
int c;
if (a > b)
c = a;
else
c = b;
System.out.println("O maior valor = " + c);
}
}
64
System.out.println("No bissexto!");
}
2.2 Switch
O uso da condio IF muito comum, mas em grande quantidade,
principalmente quando h declaraes IF dentro de outras declaraes IF
(chamados de condies aninhadas), o seu cdigo pode ficar mais complexo e de
difcil entendimento.
Uma alternativa para utilizar um grande nmero de condies IF o uso da
instruo SWITCH, declarao muito til quando necessitamos realizar um nico
teste lgico e seu resultado poder ser uma srie de resultados possveis. A
estrutura da instruo SWITCH a seguinte:
Default: tambm seu uso opcional, e usado para que uma determinada
instruo (ou conjunto de instrues) seja executada em caso de nenhuma
condio ter sido atendida.
Por exemplo:
public class UsoSwitch
{
public static void main (String args[])
{
for (int i = 1; i<5; i++)
{
switch (i)
{
case 1: System.out.println ("Numero UM");
break;
case 2: System.out.println ("Numero DOIS");
break;
65
3 OPERADORES LGICOS
Os operadores lgicos so utilizados nas expresses aplicadas aos testes
lgicos, responsveis pela avaliao condicional em um bloco de instrues. A
linguagem Java oferece vrios operadores lgicos.
SOCIESC Sociedade Educacional de Santa Catarina
66
67
Voc pode utilizar o loop While para implementar uma tarefa que deve ser
executada um determinado nmero de vezes, segundo uma expresso lgica.
Nesse caso, a expresso lgica se utiliza de uma varivel contadora, que delimitar
o limite de execues que o bloco de instrues dever realizar.
4.2 Do...While
O uso do loop DoWhile similar declarao While. A diferena apenas
o teste lgico realizado ao final da primeira execuo do bloco de cdigo, muito til
para os casos em que se deseja que pelo menos uma vez o bloco de cdigo seja
68
4.3 For
O loop for um mtodo especial usado para determinar um nmero finito de
iteraces necessrias. muito mais elegante trabalhar com loops com seqncias
limitadas de execues ao invs do loop while. Ao trabalhar com o loop for, voc
pode indicar o valor inicial para a varivel de controle, que faz parte do teste de
controle do loop.
Para construir um loop for, voc precisa iniciar o cdigo com a palavra
reservada for, seguida de um par de parentses. O trecho entre parnteses possui
trs sees separadas por ponto-e-vrgula:
A inicializao da varivel de controle para execuo do bloco de
instrues;
69
i * i );
}
}
}
5 STRINGS
Uma seqncia de caracteres entre aspas considerada uma string. No
Java, as strings so tratadas atravs de uma classe String e uma grande variedade
de mtodos fornecida para ajud-lo(a) a trabalhar com cadeias de caracteres.
5.1 Classe Character
O tipo de dados char usado para armazenar qualquer tipo de caractere.
Alm desse tipo primitivo de armazenamento, a linguagem Java oferece uma classe
chamada Character, contendo mtodos padres para testar os dados contidos na
varivel (tabela 9). Essa classe um Wrapper do tipo de dados primitivo char. O
uso de wrapper um meio prtico com que o Java trabalha para adicionar
funcionalidades a um objeto. Nesse caso, a classe Character um wrapper do tipo
de dados char e adiciona-lhe vrias funcionalidades.
Tabela 9 Mtodos da classe Character
70
71
72
Para converter uma String para um double, voc utiliza a classe Double, a
qual tambm faz parte das bibliotecas-base do Java e automaticamente importada
para o seu programa. O mtodo parseDouble() parte da classe Doubl, recebe o
parmetro em forma de string e retorna um valor double.
double doubleValor = Double.parseDouble(100.35);
73
6 ARRAYS
Como voc j aprendeu, um array uma lista de dados que possuem o
mesmo tipo de dados e esto associados a um mesmo nome na memria. Voc cria
um array da mesma maneira que declara uma varivel em Java, apenas adicionando
os sinais de abertura e fechamento de colchetes.
A declarao de um array em Java deve ser feita usando a seguinte sintaxe:
double[] Vendas = new Double[20];
74
Voc pode declarar arrays que contenham dados dos tipos inteiros e duplos e
tambm pode declarar contedos de qualquer tipo de dados, incluindo objetos.
Sntese
Nesta aula voc avanou um pouco mais e passou a desenvolver programas
Java com o controle de fluxo de execuo. Alm disso, voc aprendeu como
trabalhar com alguns aspectos particulares da OOP com Java, como a sobrecarga
de mtodos.
Voc tambm aprendeu como trabalhar com dados do tipo String e as vrias
formas de trabalho com classes especiais no Java.
Estes
dois
assuntos
tambm
participam
do
ncleo
essencial
de
Exerccios Propostos
1) O que um Wrapper?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
75
Aula 4
HERANA
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
Contedos da aula
Acompanhe os contedos desta aula. Se voc preferir,
assinale os contedos na medida em que for estudando.
Herana;
Herana de mtodos.
76
77
Prezado(a) aluno(a),
Nesta aula voc aprender um pouco mais sobre orientao a objetos
usando a linguagem Java. O foco principal da aula tratar um pouco
sobre o relacionamento entre classes em Java. Quando falamos de herana,
estamos tratando de um assunto que muitas vezes parece assunto complexo, mas
na verdade uma evoluo natural dos assuntos at aqui tratados. Voc ver ainda
que a similaridade com o mundo real muito grande, j que os conceitos de herana
seguem as orientaes com base nas interpretaes que temos hoje sobre o
assunto.
Boa Aula!
1 HERANA
Herana um recurso poderoso da linguagem Java que permite que novas
classes possam ser derivadas de classes existentes. As classes derivadas herdam
a interface da classe base e podem adicionar novos mtodos ou alterar os
existentes, para atender um propsito particular. Qualquer quantidade de classes
pode ser adicionado a um esquema para produzir uma hierarquia de tipos
relacionados. A implementao de herana no Java a base para o polimorfismo, o
qual permite que objetos de diferentes tipos possam ser tratados como se fossem do
mesmo tipo.
1.1 Introduo Herana
Os programadores, trabalhando com linguagens orientadas a objetos,
visualizam classes e seu relacionamento com as demais,usando uma hierarquia de
tipos de relacionamentos. Dessa forma, os programadores generalizam as
caractersticas comuns de tipos similares em uma superclass. Na verdade, como
veremos mais adiante, toda clase base utilizada para a criao de outras classes
considerada uma superclasse. Muitas das principais classes da plataforma Java
esto relacionadas atravs de herana. Veja a figura 23.
Toda classe Java, existente na plataforma ou criada pelo usurio, faz parte da
hierarquia usando herana, a menos que voc explicitamente programe ao contrrio,
SOCIESC Sociedade Educacional de Santa Catarina
78
Figura 23 Herana
79
80
2 HERANA DE MTODOS
S h um caminho para chamar mtodos herdados, fazendo referncia a
um objeto com a chamada vinculao dinmica, para garantir que o mtodo
chamado pelo objeto seja implementado ou herdado pela classe que o objeto
instanciou.
2.1 Usando construtores
Um objeto superclasse criado na memria antes de um objeto subclasse em
todos os nveis da hierarquia.
Por padro, o JVM chama o construtor da superclasse e no passa qualquer
parmetro para o construtor. Isso significa que a superclasse possui um construtor
sem parmetros. A linguagem Java realiza a inicializao de uma superclasse com
81
82
{
gramas=55;
calorias_por_grama=0;
}
Fruta(int g, int c)
{
gramas =g;
calorias_por_grama =c;
}
void descascar ()
{
System.out.println(Aqui eu descasco frutas);
}
}
Sntese
Nesta aula voc aprendeu mais uma parte importante da orientao a objetos,
usando a linguagem de programao Java. Voc conheceu os conceitos que esto
associados a este recurso da linguagem e aprendeu como implementar a herana
em cdigo Java.
Conforme ns vimos, a herana parte fundamental do polimorfismo e est
amplamente utilizada na comunicao entre os objetos e classes de um programa
em OOP.
Na prxima aula vamos aprender como trabalhar com Interfaces Grficas
usando Java. Esse um assunto com uma riqueza visual que nos permite construir
solues visualmente confortveis para nossos usurios.
At l.
83
Exerccios Propostos
1) Qual a necessidade do uso dos modificadores final e abstract?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) Qual a vantagem no uso da palavra super?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
3) Qual a finalidade da palavra extends?
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
_________________________________________________________________
Aula 5
Construir um applet.
Contedos da aula
Acompanhe os contedos desta aula. Se voc preferir,
assinale os contedos na medida em que for estudando.
Componentes Swing;
Gerenciadores de Layout;
Applets.
84
85
Prezado(a) aluno(a),
Nesta aula voc aprender um assunto muito exigido nas aplicaes
atuais: as interfaces grficas com o usurio. Na verdade, um assunto
antigo mas foi atravs do advento do Macintosh e do Windows que realmente esse
mtodo de envolvimento com o usurio recebeu toda sua potencialidade. Hoje so
raras as aplicaes que no possuem uma interface grfica, j que a grande maioria
dos computadores esto executando sistemas operacionais Windows ou Linux, alm
do prprio Macintosh. A plataforma Java oferece uma ampla cobertura de recursos
para o suporte na construo de aplicativos com interface grfica, inclusive, com as
ltimas verses do JDK, os programadores receberam mais ateno em tecnologias
atuais que auxiliam na construo de interfaces.
A grande vantagem do Java que a Sun implementou os mesmos
conceitos de portabilidade tambm para as bibliotecas que suportam a construo
de interfaces grficas, o que permite uma aplicao grfica ser executada e
apresentada da mesma forma em vrias plataformas.
Boa Aula!
86
87
Existem dois tipos de aplicaes grficas que podem ser criadas em Java:
1.2 Container
Um container uma categoria especial de componente grfico que pode
conter outros componentes ou mesmo outros containers (figura 25). Todos os
containers so componentes, mas nem todos os componentes so containers. Um
applet, uma janela e um painel so exemplos de container. Um container (painel)
pode ser inserido dentro de outro. Cada container possui associado um gerenciador
88
de layout para controlar a maneira pela qual seus componentes sero mostrados
(tamanho e posio).
89
90
1.5 JFC
O Java Foundation Classes (JFC) fornece um poderoso e flexvel suporte
para a criao de aplicaes grficas. O objetivo da JFC simplificar o
desenvolvimento de programas 100% Java para ambientes de rede e estaes
locais. Atravs das classes, voc pode desenhar aplicaes para refletir o sistema
operacional que est armazenando JVM, ou criar sua prpria interface grfica, ou
utilizar o visual dos recursos da plataforma Java e das implementaes da JVM.
So cinco APIs (Application Programming Interface) que compem a JFC: a
API AWC e a Swing API so os elementos fundamentais para a criao de
interfaces grficas. A Java2D API fornece um conjunto de recursos para, atravs da
AWT, permitir que aplicaes avanadas sejam criadas, especificamente para a
manipulao de imagens e desenho em 2D. A Accessibility API fornece uma
interface de programao necessria para apoio s aplicaes voltadas para
tecnologias assistidas, para pessoas com alguma deficincia fsica. A Drag and
Drop API fornecem suporte transferncia de dados entre duas aplicaes Java e
entre uma aplicao Java e uma aplicao nativa do sistema operacional (figura 27).
Para programar uma aplicao grfica ou um applet, voc precisa referenciar
pacote java.awt em sua aplicao. Dentro desse pacote, a AWT encapsula as
91
92
93
2 Componentes Swing
2.1 JComponent
Fornece uma aparncia que pode ser especificada pelo programador ou
(opcionalmente) selecionada pelo usurio, em tempo de execuo, alm disso,
permite a criao de componentes personalizados. Uma borda que implicitamente
define os limites do componente e possui a habilidade para definir o tamanho
mximo, mnimo e preferido de um componente. Fornece o recurso de ToolTips -descries curtas quando o cursor passa sobre um componente. Tambm fornece o
recurso de Autoscrolling, quando ocorre a rolagem automtica em lista, tabelas ou
rvore, ao arrastar o mouse sobre eles, com o boto pressionado (tabela 14).
Todos os componentes possuem dois modos de cores associados: a de fundo
(background) e a de frente (foreground). A JFC introduz o conceito de um
componente lightweight, com um fundo transparente que permite ver o que est
atrs do componente. O componente transparente no faz uso de cores de fundo. A
classe JComponent possui os mtodos isOpaque, que retorna false, se o
componente for transparente, e setOpaque(boolean b), que permite alterar essa
propriedade.
94
95
import javax.swing.*;
public class BasicFrame extends JFrame {
public static void main(String[] args) {
BasicFrame bf = new BasicFrame
("Exemplo de Janela Java");
}
BasicFrame (String title) {
super(title);
setSize(250, 200);
setVisible(true);
}
}
96
2.3 JPanel
A classe JPanel (painel) uma sub-classe de JComponent. Tem o propsito
de agrupar componentes para serem posteriormente inseridos em outro container e
permitem a criao de layouts sofisticados. Podem conter componentes incluindo
outros painis e utiliza o gerente de layout FlowLayout como padro.
import java.awt.*;
import javax.swing.*;
public class PanelDemo {
private JPanel painelAzul;
private JPanel painelVermelho;
private JFrame janelaDemo;
public PanelDemo()
97
2.4 JDialog
Um JDialog uma janela com uma barra de ttulo. As caixas de dilogos so em
geral usadas para obter/mostrar informaes do/para o usurio.
O swing fornece um rico conjunto de dilogos que permite interaes bsicas
com o usurio, sem a necessidade de escrever muito cdigo (tabela 16).
Alguns aspectos importantes sobre caixas de dilogo:
Caixas de dilogos podem ser modais ou no-modais;
Caixas modais no permitem que outras janelas sejam acessadas at que a
caixa de dilogo seja fechada;
Caixas no-modais permitem que outras janelas sejam manipuladas
simultaneamente janela de dilogo;
BorderLayout o gerente de layout usado implicitamente por caixas de
dilogos.
Tabela 16 Construtores JDialog
JDialog utiliza uma estrutura de camadas como a classe JFrame (tabela 17. Assim,
ao adicionarmos um componente, devemos utilizar o ContentPane:
98
dialog.getContentPane().add(comp1);
2.5
JLabel
JLabel uma rea onde textos no editveis e imagens podem ser
Para avaliarmos como implementar uma classe JLabel, avalie o cdigo Java
abaixo:
import java.awt.*;
import javax.swing.*;
public class TesteLabel
{
public static void main(String[] args)
{
JFrame fr = new JFrame();
JLabel lb = new JLabel(Texto em baixo,
new ImageIcon(duke.gif),
SwingConstants.LEFT);
lb.setHorizontalTextPosition(SwingConstants.CENTER);
lb.setVerticalTextPosition(SwingConstants.BOTTOM);
fr.getContentPane().add(lb);
99
fr.pack();
fr.setVisible(true);
}
}
2.6 JTextComponent
A classe JTextComponent (tabela 18) uma abstrao de um componente
que recebe inseres de textos do usurio. a super-classe abstrata de duas
classes com funcionalidades em comum: JTextField e JTextArea e seus mtodos e
atributos so compartilhados.
Tabela 18 Mtodos da classe JTextComponent
3 GERENCIADORES DE LAYOUT
Embora seja possvel posicionar objetos em coordenadas fixas (x, y), deve-se
evitar essa prtica em Java. Isso causa problemas de portabilidade: outras JVMs,
GUIs e Window Managers tero fontes e outros elementos em tamanhos e
100
FlowLayout;
GridLayout;
BorderLayout;
CardLayout;
GridBagLayout;
BoxLayout.
WindowBorderLayout BorderLayout
JmenuBar BoxLayout
101
102
5 APPLETS
Java Applets so mini-programas grficos que executam em um contexto de
outro programa, tambm so conhecidos como containers. A Internet foi a grande
alavancadora da tecnologia, considerando que seu uso ficou mais explorado em
pginas Web. Um applet no uma aplicao convencional em Java. Na verdade
um mini-programa chamado a partir de um programa maior, como um visualizador
de applets ou um navegador compatvel com a tecnologia Applet. Por isso, um
applet precisa de um outro programa, sempre, para que possa ser executado. Isso
significa que o visualizador ou o navegador implementam as funes mais comuns
para applets e fornecem estas funes para o applet, atravs da Java API. o
container que controla a execuo do applet.
Um applet grfico por natureza. Ocupa um painel retangular na janela de
visualizao do container. Os applets podem ser vinculados em uma pgina Web,
assim como uma imagem vinculada a uma pgina.
import java.applet.*;
import java.awt.*;
public class exemploApplet extends Applet
{
103
Para chamar um applet de uma pgina Web, o cdigo deve ser o seguinte:
104
<html>
<title>Exemplo de uso de applet em pgina HTML</title>
<hr>
<applet code=exemploApplet.class width=320 height=120>
Se o seu navegador compatvel com Java, uma mensagem Exemplo de
Applet dever aparecer aqui.
</applet>
<hr>
</html>
Sntese
Nesta aula voc aprendeu como construir programas com interfaces grficas.
No uma tarefa simples, mas a verso mais atual do Java, oferece um grande
conjunto de melhorias e as instrues necessrias para a construo de aplicaes
grficas est muito facilitado.
Voc viu tambm como trabalhar com Applets. Tipo de aplicao que tem
muita procura a ser atendida, j que atravs deles possvel gerar uma interao
entre um programa convencional Java e recursos de uma pgina Web.
Na prxima aula, vamos falar mais sobre como utilizar objetos com Java para
expandir ainda mais as capacidades de nossas aplicaes.
At l.
Exerccios Propostos
1) Qual a vantagem do uso de gerenciadores de layout nos trabalhos de
construo de interfaces grficas em Java?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
SOCIESC Sociedade Educacional de Santa Catarina
105
Aula 6
usando Java;
Introduo ao J2EE;
Java em rede;
106
107
Prezado(a) aluno(a),
medida que as aplicaes Java cresceram em amplitude de uso e
possibilidades de negcios, novas demandas foram surgindo para a
plataforma. O uso do Java em ambiente corporativo gerou exigncias como,
capacidade de gerenciamento de grande volume de dados, regras de negcios
complexas e dinmicas e grande volume de usurios simultneos. O ambiente
transacional de hoje espera tecnologias que atendam questes como segurana,
distribuio, velocidade e resilincia.
Nesta aula, vamos conhecer os componentes da plataforma Java que
oferecem respostas para as mais diversas finalidades nas aplicaes corporativas.
No centro desta aula estar o conceito de objetos distribudos no Java, como
tambm o conceito de aplicaes empresariais que necessitam de alta capacidade
de processamento.
Finalmente, vamos falar um pouco de como a linguagem Java oferece
suporte ao desenvolvimento Web.
Tenha uma boa aula.
1 J2EE
J2EE, ou Java 2 Enterprise Edition, uma plataforma para desenvolvimento
de aplicaes distribudas. Apresenta facilidades para a utilizao dos recursos
computacionais e distribudos tais como acesso a banco de dados, componentes
Web, utilizao de mensagens assncronas, execuo de processos transacionais,
persistentes e outros.
Apresenta uma API, especificada pela Sun MicroSystems, que proporciona
um padro para a implementao dos diversos servios que oferece. Pode ser feito
diferentemente por vrias empresas, de formas distintas, mesmo oferecendo as
mesmas facilidades, por estarem de acordo com as especificaes impostas para a
sua construo. Um programador que j tenha tido contato com a linguagem Java e
suas APIs na J2SE (Java 2 Standart Edition), no ter muitas dificuldades no
entendimento e na utilizao de J2EE. O que precisa entender os detalhes da
arquitetura e onde se encontra cada componente e seus recursos. necessrio
ambientarmo-nos nesse contexto para fazermos uso correto da plataforma.
SOCIESC Sociedade Educacional de Santa Catarina
108
109
110
Para criar uma classe JavaBeans, voc deve se utilizar dos pacotes
java.beans e java.beans.context, que esto includos no J2SE. importante
observar que no existe uma superclasse que compreenda todas as extenses
JavaBeans e que tambm no apresenta um modelo centralizado de interfaces para
implementar JavaBeans.
Como o objetivo a criao de componentes que sero utilizados em
interfaces grficas, um JavaBean expe membros de sua implementao atravs de
trs elementos importantes:
111
JavaBean, poder ser reutilizado por vrios programadores e poder ficar disponvel
em qualquer ambiente IDE que seja compatvel com o modelo JavaBean.
Para conhecer mais sobre a especificao JavaBean, acesse o seguinte
endereo:
http://splash.javasoft.com/beans/spec.html
2.1 Enterprise JavaBeans
A especificao Enterprise JavaBeans (EJB) descreve um modelo para
componentes Java que foram construdos para serem instalados e disponibilizados a
partir de um servidor. A conexo entre os componentes EJB e o JavaBeans referemse a um modelo de programao da linguagem Java. Exceto pela similaridade dos
nomes, so poucas as similaridades funcionais entre os dois modelos.
112
113
114
115
116
* objetos no servidor
*/
public class StudentClient {
private static final String HOST_NAME = "localhost";
public static void main( String[] args ) {
if ( System.getSecurityManager() == null ) {
System.setSecurityManager(
new RMISecurityManager() );
}
try {
Student s1001
= (Student) Naming.lookup( "//" + HOST_NAME
+ "/Student1001" );
Student s1005
= (Student) Naming.lookup( "//" + HOST_NAME
+ "/Student1005" );
System.out.println( s1001.getName() );
System.out.println( s1005.getName() );
System.out.println( s1001.getCredits() );
s1001.addCredits( 3 );
s1001.setName( "Elaine Goldman" );
System.out.println( s1001.getName() );
System.out.println( s1001.getCredits() );
} catch ( Exception x ) {
x.printStackTrace();
}
}
}
117
118
Para executar um servlet voc precisa de um servidor Web, que precisa ter o
mecanismo de interpretao de servlets. Existem vrios servidores Web de
fabricantes diferentes.
Exemplo:
<HTML>
<HEAD>
<META NAME="Pragma" CONTENT="no-cache">
<META NAME="Cache-Control" CONTENT="no-cache">
<META NAME="Expires" CONTENT="0">
<TITLE>Member Info Update</TITLE>
</HEAD>
<%@ page import="skiclub.*" %>
<BODY
<CENTER>
<IMG
SRC="/skiclub/images/SkiClub.gif"
119
120
VALUE="<%= ( (ClubMember)
session.getValue( "member" ) ).getLastName() %>"
SIZE=30 MAXLENGTH=30 > </TD>
</TR>
<TR>
<TD><strong>Phone Number</strong></TD>
</TD>
<TD><INPUT TYPE="text" NAME="PHONE"
VALUE="<%= ( (ClubMember)
session.getValue( "member" ) ).getPhoneNumber() %>"
SIZE=10 MAXLENGTH=10 >
<em>digits only</em>
</TD>
</TR>
<TR>
<TD><strong>Address</strong></TD>
<TD><em>For demonstration purposes,
this field is a placeholder</em></TD>
</TR>
<TR>
<TD><strong>Skiing Ability</strong></TD>
<TD>
<%! String[] levels = { "Novice",
"Intermediate",
"Advanced",
"Expert" };
%>
<% String ability = ( (ClubMember)
session.getValue( "member" ) ).getAbility();
out.println( "<SELECT NAME=\"ABILITY\" >" );
for ( int i = 0; i < levels.length; i++ ) {
out.print( "<OPTION VALUE=\"" + levels[i] + "\"");
if ( ability.equals( levels[i] ) ) {
out.print( " SELECTED>" );
} else {
out.print( ">" );
}
out.println( levels[i] + "</OPTION>" );
}
out.println("</SELECT>");
%>
121
</TD>
</TR>
</TABLE>
<TABLE BORDER=0 CELLSPACING=20 >
<TR>
<TD><INPUT TYPE="submit" VALUE="
<TD><INPUT TYPE="reset"
Update
VALUE="
Reset
"></TD>
" ></TD>
</TR>
</TABLE>
</CENTER>
<p>If this information is correct, you may:
<ul>
<li><a href="/servlet/skiclub.BookingServlet">
Update ski trip bookings</a></li>
<li><a href="/skiclub/skiclub/memberHome.jsp">
Return to your member home page</a></li>
</ul>
</FORM>
</p>
</BODY>
</HTML>
Sntese
Nesta aula voc conheceu como as principais tecnologias Java se
apresentam para resolver problemas mais complexos, de aplicaes corporativas e
baseadas em objetos distribudos. A plataforma J2EE a proposta mais ampla que a
Sun e seus colaboradores apresentaram para os programadores, considerando todo
o conjunto de tecnologias envolvidas.
Tambm nesse contexto, voc pde perceber que a Internet uma grande
revoluo para os programadores, j que novas necessidades e novos formatos de
aplicaes esto sendo exigidas pelo mercado. Isso gera no progamador a
necessidade de conhecimentos essenciais sobre como as aplicaes na Web
funcionam, incluindo conhecer a linguagem HTML, os protocolos de comunicao
122
Exerccios Propostos
1) Qual a diferena entre uma pgina JSP e um Servlet?
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) Qual a principal finalidade do uso do J2EE?
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Aula 7
Objetivos da aula
Ao final desta aula, voc dever ser capaz de:
dados.
Contedos da aula
Acompanhe os contedos desta unidade. Se voc
preferir, assinale os contedos na medida em que for
estudando.
Linguagem SQL;
JDBC.
123
124
Prezado(a) aluno(a),
Nesta ltima aula voc aprender como trabalhar com bancos de dados
em sua aplicao Java. A plataforma Java oferece um conjunto de
classes principais que voc pode utilizar para acessar dados em um banco de dados
relacional, disponibilizado por um SGBD e instalado em seu computador local ou na
rede, e que possua um driver de conexo para que as classes Java possam acesslo.
Desenvolver solues corporativas usando Java, muito comum
necessidade de implementao de uma conexo com banco de dados e o Java
oferece todo o ferramental para que voc possa construir suas aplicaes.
Tenha uma boa aula.
Coluna 2
Coluna 3
CPF
Nome
DataNascimento
4594545
Jnior da Silva
24-08-2005
9454001
Armort de Souza
31-05-2005
9345400
Tianak da Costa
12-02-2004
125
Descrio
Nos sistemas de arquivos, os dados ficavam
Eliminao da
inconsistncia dos dados
dados
aos dados
Prov restries de
integridade
Prov ferramentas
restore
126
2 LINGUAGEM SQL
Na histria do desenvolvimento dos Bancos de Dados Relacionais, h o
momento em que foi necessrio o desenvolvimento de linguagens destinadas sua
manipulao. Ento o Departamento de Pesquisas da IBM desenvolveu a SQL
(Search and Query Language) como forma de interface para o SGBD denominado
SYSTEM R no incio dos anos 70. Somente em 1986 o American National Standard
Institute ( ANSI ), publicou um padro SQL (Structured Query Language), que se
estabeleceu como linguagem padro de Banco de Dados Relacional.
A SQL pode ser dividida em dois tipos de comandos:
127
128
Comandos DDL:
Comando
Descrio
CREATE
DROP
ALTER
Comandos DML:
Comando
Descrio
129
SELECT
INSERT
DELETE
UPDATE
3 JDBC
JDBC (figura 36) uma API (Application Program Interface) para acesso a
SGBDs (Sistemas Gerenciadores de Banco de Dados) relacionais por meio de
comandos SQL (Structured Query Language).
Figura 36 JDBC
A API para programao do sistema a mesma para qualquer SGBD. Por
isso, no h necessidade de se desenvolverem aplicaes voltadas para um SGBD
especfico, pois elas no esto atreladas a uma arquitetura proprietria. Com isso,
fica assegurada a independncia de plataforma de Java. A biblioteca JDBC tambm
permite a construo de pginas WWW dinmicas que acessem banco de dados.
A grande vantagem do modelo JDBC que nenhuma configurao
requerida no lado cliente.
Os Passos para conexo JDBC so os seguintes:
a) Incluir no programa: import java.sql.*;
b) Carregar corretamente o driver desejado;
c) Conectar com o banco de dados;
d) Criar o comando JDBC;
e) Enviar comandos SQL.
130
Como voc pode perceber, o primeiro passo para iniciar a comunicao com
o banco de dados o uso de um driver, o software responsvel pela comunicao
entre a aplicao, usando JDBC e o sistema de banco de dados envolvido. Cada
fabricante de banco de dados possui seu prprio driver e sempre prefervel utilizar
o driver nativo do fabricante. A linguagem Java suporta quatro tipos de drivers:
1. Ponte com ODBC: o tipo provido pela Sun. Apropriado para uso
experimental e para situaes em que no haja outro driver disponvel;
2. Driver independente de SGBD: converte chamadas JDBC em chamadas
API do cliente para Oracle, Sybase, Informix, DB2 ou outro SGBD;
3. Acesso ao driver nativo: a API JDBC chama procedimentos do driver
nativo do SGBD instalado na mquina local ou no servidor para as
aplicaes distribudas;
4. Driver com protocolo proprietrio escrito em Java: a comunicao
entre o cliente e o SGBD d-se no protocolo do BD, contudo, como o
driver escrito em Java, dispensa a instalao ou configurao do driver
no cliente.
A abertura da conexo (sesso) feita pelo mtodo getConnection da classe
DriverManager (o servio bsico para gerenciamento de um conjunto de drivers
JDBC) e o mtodo retorna um objeto do tipo Connection. A URL de acesso
composta de protocolo:subprotocolo:subnome e o DriverManager tenta conectar
com o primeiro driver carregado; se no consegue, tenta o driver seguinte e se no
localizar, lanada uma exceo SQLException.
Vamos a um exemplo:
import java.sql.*;
java.util.Properties props = new Properties();
props.put("user", objAccessManager.getConta());
props.put("password", objAccessManager.getSenha());
String url = "jdbc:odbc:temp//"+ "fava" +":6024/" +
bancoDeDados;
try
{
// carrega o driver da ponte jdbc-odbc
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
131
//DriverManager.getConnection()
{
System.out.println(
"Falha na conexo com o banco de dados:" );
System.out.println(e.getMessage();
}
envio
de
um
comando
SQL
feito
por
intermdio
dos
mtodos
executeUpdate:
stmt.executeUpdate (CREATE TABLE Alunos(nome VARCHAR(32),
idade INTEGER););
stmt.executeUpdate (INSERT INTO Alunos VALUES(Jonas, 18););
132
133
tables[i];
select +=
}
select += condition;
System.out.println( select );
return query.executeQuery( select );
} catch ( SQLException e ) {
throw new DBopException (
"Cannot extract data with SQL statement:\n "
+ select );
}
}
134
135
136
137
+ "ID" + "=" +
138
139
140
141
Sntese
Nesta aula voc aprendeu como trabalhar com banco de dados em suas
aplicaes e quais os principais componentes da plataforma Java que suportam as
operaes de banco de dados.
Com esta aula terminamos o mdulo de Programao Aplicada usando Java. Espero
que voc tenha obtido resultados satisfatrios com o contedo apresentado e que
esteja motivado para continuar a construir aplicaes usando a plataforma Java.
Desejo-lhe boa sorte e no pare seus estudos em Java, pois um mundo de
oportunidades que est em constante crescimento e hoje, est cada vez, permite
que profissionais realizem melhor o seu trabalho.
Um grande abrao!
Exerccios Propostos
1) Qual a funo do JDBC no Java?
______________________________________________________________
______________________________________________________________
______________________________________________________________
2) possvel executar um comando SQL atravs de uma conexo SQL? Caso
positivo, explique os componentes Java envolvidos nesta operao.
______________________________________________________________
______________________________________________________________
______________________________________________________________
REFERNCIAS
MORGAN, M..; Java 2 para programdores profissionais. Sams Books, 2000.
RODRIGUES FILHO, Renato; Desenvolva aplicativos com Java 2. rica, 2005.
GOSLING, James; A linguagem de programao Java. Bookman, 2007.
CADENHEAD, Rogers; Aprenda em 21 dias Java 2. Campus, 2005.
LINDEN, Peter; Simplesmente Java2. Alta Books, 2005.
142