Prévia do material em texto
PROJETO CRUD COM
JPA USANDO
NETBEANS
Do banco de dados ao desenvolvimento
Trabalho realizado pelo 4º período de Analise desenvolvimento de sistemas da
Faculdade UNIVC em São Mateus/ES:
• Bruna de Assis Zordan
• Thaise dos Santos Nascimento
• Kênia Ramos Pinheiro
• Emanuel Carneiro dos Reis
• Arthur Scopel Santos
• Rodolfo Pereira Katachinski
• Tayana Inyth Cunha Rozario
• Lana Codeco de Matos
• Nickson Corradi Barbosa
2012
Prof. Douglas Tybel
FACULDADE VALE DO CRICARÉ - UNIVC
17/10/2012
1
ABRIR PHPMYADMIN............................................................................................................................. 2
CRIAR BANCO DE DADOS ....................................................................................................................... 3
CRIAR TABELAS ...................................................................................................................................... 4
DEFINIR STORAGE ENGINE ............................................................................................................................... 5
DEFINIR RELAÇÕES ENTRE TABELAS .................................................................................................................... 6
ADICIONANDO UM NOVO CAMPO – CHAVE ESTRANGEIRA ...................................................................................... 8
DESENVOLVER O APLICATIVO CRUD - NETBEANS ................................................................................. 12
CRIAR NOVO PROJETO NO NETBEANS ............................................................................................................... 12
NOVO FORMULÁRIO DE AMOSTRA MESTRE/DETALHES – COMO CRIA-LO ................................................................. 13
COMPILANDO O PROJETO .............................................................................................................................. 20
FORMULÁRIO CRUD - TESTES ....................................................................................................................... 21
TIPOS DE CAMPO PARA CHAVE ESTRANGEIRA - NOTAÇÃO .................................................................................... 27
RELACIONAMENTO ENTRE ENTIDADES – NOTAÇÃO MANYTOONE ......................................................................... 31
CHAVE ESTRANGEIRA – CAIXA DE COMBINAÇÃO ................................................................................................. 33
BINDING ELEMENTS – VINCULAR ELEMENTOS DE UMA ENTIDADE A CAIXA DE COMBINAÇÃO ....................................... 35
CAIXA DE COMBINAÇÃO – RENDERER .............................................................................................................. 36
CONFIGURAR COMPONENTE JTABLE - TABELA ................................................................................................... 40
CONFIGURAÇÃO DA CHAVE ESTRANGEIRA – NOTAÇÃO @JOINCOLUMN ................................................................. 43
FINALIZANDO PROJETO – COMPILAR E TESTAR ................................................................................................... 45
2
ABRIR PHPMYADMIN
Figura 1 - Tela para criar Bando de Dados
Fonte: Própria (2012)
Para abrir o PHPMyAdmin acesse seu servidor de pagina, no nosso exemplo será utilizado o
servidor xampp.
Acesse c:\xampp e execute o arquivo “xampp-control”. Feito isso, inicie o Apache e o MySQL
clicando nos respectivos botões: “Start” ou “Iniciar”.
Figura 2 - Xampp Control Panel
Fonte: Propria (2012)
Abra o PHPmyadmin, para isso clique no botão “admin” que está na frente do “MySql” do
Xampp Control.
3
CRIAR BANCO DE DADOS
No PHPMyAdmin(http://localhost/phpmyadmin/) defina nome para o seu banco de dados para
“colaboradores” e clique no botão “criar”.
Figura 3 - Criação de Banco de Dados
Fonte: Propria (2012)
Imediatamente será criado um banco de dados.
Para visualizar as configurações do banco de dados criado, clique no nome do banco de dados
que se encontra no lado esquerdo de sua tela.
Figura 4 - Selecionar Banco de Dados
Fonte: Própria (2012)
4
CRIAR TABELAS
Próximo passo é criar uma tabela, clique em “Create Table” que se encontra ao lado esquerdo
de sua tela. Essa funcionalidade surgirá independente da versão do PHPMySQLAdmin, caso
tenha efetuado um clique no banco de dados.
Preencha o campo “Nome:” com a tabela: Funcoes
Figura 5 - Criar tabela
Fonte: Propria (2012)
Após definir o nome da tabela e o número de colunas que vai existir em seu projeto, em
seguida clique no botão “Executar”.
Figura 6 - Definir nome e número de colunas na tabela
Fonte: Própria (2012)
Feito isso aparecerá uma tabela com o número de colunas que já foi definido, repare que as
colunas ficaram em branco para que seja preenchida de acordo com a estrutura do seu banco
de dados.
Figura 7 - Estrutura da tabela
Fonte: Própria (2012)
5
Definir Storage Engine
Não se esqueça de mudar o campo “Storage Engine” para “InnoDB”.
InnoDB é um módulo ou estratégia de armazenamento para o MySQL, sua principal função é
dar suporte a transações e chaves estrangeiras, evoluindo muito em relação ao antigo
MyISAM.
Figura 8 - Mudança do campo "Strorage Engine" para "InnoDB"
Fonte: Própria (2012)
Com a estrutura toda montada, faça sua ultima conferência e observe os tipos de campos,
chaves entre outros. Em seguida clique no botão “Salvar”.
Figura 9 - Salvando tabela
Fonte: Própria (2012)
Uma mensagem de confirmação de que a tabela foi criada aparecerá na tela.
6
Figura 10 - Confirmação de criação de tabela
Fonte: Propria (2012)
O próximo passo é clicar no nome de sua tabela para visualizarmos sua estrutura e outras
funcionalidades.
Figura 11 - Selecionar tabela para o acesso a mesma
Fonte: Própria (2012)
Definir relações entre tabelas
O banco de dados relacional nos permite realizar as relações entre as tabelas. Para isso, basta
clicar no Banco de dados Colaboradores >> Na tabela funções >> Aba Estrutura >> Link abaixo
“Ver relações”.
Figura 12 - Dentro da tabela - criar relações
Fonte: Própria (2012)
Esse passo é totalmente facultativo, uma vez que não é obrigatório, mas para nível de
conhecimento, faremos com que a coluna estrangeira de funções, liste as funções, ao invés de
seus respectivos códigos. Desta forma facilitará o cadastro e testes dos técnicos em
7
desenvolvimento. Ainda na tela de estrutura irão aparecer às relações existentes em sua
tabela, vá à opção “Choose column to display” e mude para a coluna desejada.
Figura 13 - Mudança de visualização para a coluna desejada
Fonte: Própria (2012)
Seguindo nosso exemplo a coluna “funcao" foi escolhida. Clique em “Salvar” no lado direito de
sua tela.
Figura 14 - Salvar alterações
Fonte: Própria (2012)
Em seguida será criada outra tabela mais uma vez no botão “Create Table” que se encontra ao
lado esquerdo de sua tela.
Figura 15 - Criação de uma nova tabela
Fonte: Própria (2012)
8
Adicionando um novo campo – chave estrangeira
Defina mais uma vez as estruturas de suas colunas. Siga exatamente como está na imagem
acima.
Figura 16 - Definir estruturas das colunas
Fonte: Própria (2012)
Clique em “Executar” que se encontra ao lado direito de sua tela, para criar mais uma coluna
que chamaremos de “cod_funcao”, chave estrangeira da tabela de funções.
Figura 17 - Executar alterações
Fonte: Própria (2012)
9
Veja na figuraacima que foi criado mais uma coluna totalmente em branco para ser
preenchida.
Figura 18 - Criação de mais uma coluna
Fonte: Própria (2012)
Defina as estruturas dessa coluna que foi adicionada, abaixo segue os detalhes.
Preencher o campo “cod_funcao” conforme imagem.
Figura 19 – Preencher campos de tabela
Fonte: Propria (2012)
Repare que apenas o nome do campo e o tipo foram modificados do padrão. Clique em
“Salvar”
10
Figura 20 - Salvar alterações de tabela
Fonte: Própria (2012)
Clique no nome da ultima tabela criada que se encontra do lado esquerdo de sua tela. No caso
do nosso exemplo, clique em “funcionarios”.
Figura 21 - Selecionar nome da ultima tabela criada
Fonte: Própria (2012)
Adicionaremos os campos como chave estrangeira. Clique em “Ver relações”.
Figura 22 – Verificando relações
Fonte: Própria (2012)
11
Nas relações da coluna mude a relação da coluna desejada.
Figura 23 - Mudança de relação da coluna desejada
Fonte: Própria (2012)
Clique na tabela “funcionários”, na aba “Estrutura” observe o grupo “Relações”, veja que na
coluna “cod_funcao” existe um combo com as opções de chave. Clique na caixa de seleção de
“cod_funcao” escolha a chave: “colaboradores.funcoes.cod_funcao”, conforme mostra na figura
abaixo:
Figura 24 - Tela para adicionar chave estrangeira
Fonte: Própria (2012)
Depois de te escolhido essa opção, clique em “Salvar”.
Parabéns, as definições das tabelas estão prontas!
12
DESENVOLVER O APLICATIVO CRUD - NETBEANS
Agora podemos passar para a próxima etapa que será no NetBeans.
O NetBeans IDE é um ambiente de desenvolvimento integrado (IDE) gratuito e de código
aberto para desenvolvedores de software nas linguagens Java, C, C++, PHP, Groovy, Ruby,
entre outras.
Criar novo projeto no Netbeans
Para criarmos um novo projeto, vá ao menu Arquivo >> Novo >> Projeto ou pode utilizar os
atalhos Ctrl+Shift+N. Na janela para escolha um novo projeto, escolha na Categoria “Java” e na
Subcategoria de projetos, escolha: “Aplicativo Java” e clique em próximo.
Figura 25 - NetBeans – Novo Projeto
Fonte: Própria (2012)
13
Abrirá uma nova janela chamada novo aplicativo Java. Informe o nome do projeto
“Colaboradores”. Todas as demais opções devem estar conforme figura abaixo, com exceção
dos caminhos que serão assumidos de acordo com cada micro. Clique em “Finalizar”.
Figura 26 - Netbeans – Novo Aplicativo Java
Fonte: Própria (2012)
Novo formulário de amostra mestre/detalhes – Como cria-lo
Clique sobre o pacote “colaboradores” com o botão direito vá em Novo e depois em “Outro...”
Figura 27 - Tela para criar outro formulário
Fonte: Própria (2012)
14
Abrirá uma nova janela de novo arquivo, neste sentido clique na categoria “Formulários GUI
Swing” e depois em “Tipo de arquivos”, selecione o item: “Formulário de amostra
mestre/detalhe”. Clique em próximo.
Esse é o 1º passo, a escolha do tipo de arquivo.
Figura 6 – Netbeans – Tela Novo arquivo
Fonte: Própria (2012)
Aparecerá uma nova janela como o nome novo formulário mestre/detalhe. Iremos para o 2º
passo que se trata do nome e local. Mude o nome da classe para “JFFuncoes”. Clique em
próximo.
Figura 7 – Tela do 2º passo do nome e local
Fonte: Própria (2012)
Aparecerá uma nova janela para damos continuidade ao 3º passo, que é a tabela mestre. Vá
até “Conexão de banco de dados” na caixa de seleção, procure pela opção “Nova conexão
15
com banco de dados...” e selecione com um clique. Isso possibilitará o vinculação do NetBeans
com o banco de dados.
Figura 28 - Tela para adicionar nova conexão de banco de dados
Fonte: Própria (2012)
Na janela “Assistente nova conexão” terá varias opções de driver. Escolha a opção MySQL
(connector / J driver).
Figura 9 - Tela Assistente de nova conexão
Fonte: Própria (2012)
Clique em próximo como mostra a figura:
16
Figura 10 - Tela para localizar driver
Fonte: Própria (2012)
A definição da tela de configuração da conexão fica a cargo de cada um.
Caso esteja usando servidor xampp, então a configuração será praticamente a mesma. Não é
obrigatório informar senha, mais no caso da figura abaixo a senha é “root”.
Figura 29 – Assistente de nova conexão - testar conexão
Fonte: Própria (2012)
17
Clique em finalizar como mostrar a figura abaixo:
Figura 30 - Assistente de nova conexão - Finalizar
Fonte: Própria (2012)
Aparecerá o 3º passo “Tabela mestre”. Esse assistente gerará um formulário com os campos
da tabela e uma grade. Neste passo você definirá quais campos deseja na grade e o ultimo
passo os campos do formulário. Normalmente escolhemos todos os campos ou pelo menos os
essenciais, mais uma regra é importante: Não remova o campo chave “cod_funcao”. Mesmo
que você não o queira, deixe-o, senão pode ocorrer erros. Posteriormente se quiser pode
removê-lo.
Figura 31 - Tela para criar tabela mestre
Fonte: Própria (2012)
Após ter selecionados todas as colunas disponíveis e passado da esquerda para direita em
“Colunas a serem incluídas”, deste modo é possível prosseguir clicando no botão “Proximo”:
18
Figura 32 - Tela tabela mestre (Finalizando)
Fonte: Própria (2012)
Agora vamos passar para 4º passo, visto que neste momento escolheremos os campos a
serem dispostos no formulário.
Normalmente incluímos todos os campos com exceção dos campos AI (Auto incremento). Visto
que uma PK geralmente é AI, então neste caso, o campo retornará a esquerda, para a listagem
dos campos disponíveis.
Basta selecionar o campo chave que está na listagem da direita e clicar no botão “<” que o
“removerá” da listagem de campos disponíveis. Em nosso exemplo o campo chave é
“cod_funcao”.
Figura 33 - Opções de detalhe
Fonte: Própria (2012)
Veja abaixo a ilustração.
19
Figura 34 - Opções de detalhe (Campo AI)
Fonte: Própria (2012)
Clique no botão finalizar como mostra a figura abaixo :
Figura 35 - Opções de detalhe (Finalizar)
Fonte: Própria (2012)
Agora seu formulário e a tabela mestre foi criada. Aguarde a barra de progresso do processo
de criação.
Figura 36 - Opções de detalhe (Campo AI)
Fonte: Própria (2012)
20
Compilando o projeto
Para que todos os arquivos de propriedade estejam atualizados, vá ate a barra de ferramenta
superior e clique em executar e clique na opção para limpar e construir projeto principal, ou
simplesmente usar as teclas Shift+F11 como atalho.
Figura 20 - Tela para limpar e construir projeto principal
Fonte: Própria (2012)
Para executar o formulário que acabou de gerar, clique com botão direito sobre o JFFuncao e
clique em “Executar arquivo” ou use as teclas Shift + F6 como atalho.
Figura 37 - Tela executar o projeto
Fonte: Própria (2012)
Seu formulário foi gerado com as funcionalidades CRUD no designer padrão.
CRUD (acrônimo de Create, Read, Update e Delete em língua Inglesa) para as quatro
operações básicas utilizadas em bancos de dados relacionais.
A abreviação CRUD mapeada para o padrão ISO/SQL:
Create INSERT
Read (Retrieve) SELECT
Update UPDATE
Delete (Destroy) DELETE
Veja abaixo que existem botões de comando para persistência de dados.
21
A persistência de dados, na computação, refere-se ao armazenamento não-volátil de dados,
por exemplo, o armazenamento de campos para entrada de dados sendo salvos no banco de
dados.
Figura 38 - Tela CRUD para Funções (Novo)
Fonte: Própria (2012)
Formulário CRUD - Testes
Vamoscadastrar algumas funções para verificarmos se as funcionalidades CRUD estão todas
em funcionamento. Após preencher o campo função, clique em “Save” para salvar como
mostra a figura:
Figura 39 - Tela CRUD para Funções (Salvar)
Fonte: Própria (2012)
22
Pronto! Para visualizar os códigos gerados pelo AI, no campo “cod_funcao”, basta clicar no
botão “Refresh”.
Figura 40 - Tela CRUD para Funções (Atualizar)
Fonte: Própria (2012)
Compare abaixo os códigos gerados.
Figura 41 - Tela CRUD para Funções (Campo AI)
Fonte: Própria (2012)
Geralmente começamos a gerar os formulários pelas tabelas que não tem chaves estrangeiras,
isso para facilitar.
Para criarmos o formulário CRUD da tabela de “Funcionarios”, clique com o botão direito do
mouse no seu pacote “colaboradores” > Novo > Outro...
23
Figura 42 - Tela inicial do Netbeans (Outro...)
Fonte: Própria (2012)
Selecione a Opção “Formulários GUI Swing” e “Formulário de amostra mestre/detalhe”
Figura 43 - Tela Novo Arquivo
Fonte: Própria (2012)
24
Declare o nome da classe “JFFuncionarios” no pacote “colaboradores” e clique em Avançar.
Figura 44 - Novo Formulário
Fonte: Própria (2012)
Selecione a conexão com o banco de dados (O nome do pacote a ser usado) “[root em
Esquema padrão]”.
A mesma conexão criada em passos anteriores, pois uma vez criada, não será mais
necessário.
Figura 45 - Novo Formulário (Conexão)
Fonte: Própria (2012)
25
Selecione a tabela do banco de dados.
Figura 46 - Novo Formulário (Tabela)
Fonte: Própria (2012)
Verifique as Colunas a serem incluídas e selecione “avançar”
Figura 47 - Novo Formulário (Tabela Meste)
Fonte: Própria (2012)
26
Selecione o campo “cod_funcionario” e selecione o botão (<) conforme a imagem.
Figura 48 – Novo Formulário (Opções de detalhe)
Fonte: Própria (2012)
O Campo “cod_funcionario” será incluído em “Campos disponíveis” e não será incluso no form,
isso por ser um campo AI, conforme já explicado anteriormente.
Figura 49 - Novo Formulário(Opções de detalhe – Campos disponíveis)
Fonte: Própria (2012)
27
Selecione “Finalizar” com os campos incluídos ( funcionário, cod_funcao) e o campo (
cod_funcionario ) não será incluído no form.
Figura 50 - Novo Formulário (Finalizar)
Fonte: Própria (2012)
Tipos de campo para chave estrangeira - Notação
Quando o formulário contem campos de chave estrangeira como o “cod_funcao”, teremos que
efetuar sua relação na classe gerada pelo IDE Netbeans.
No pacote colaboradores, escolha o campo “Funcionarios.java” com o botão direito do mouse >
Abrir.
Figura 51 – Classe Funcionários – Abrir
Fonte: Própria (2012)
A tabela do código fonte do programa surgirá.
Figura 52 - Classe Funcionários - Código
Fonte: Própria (2012)
Aproximadamente entre as linhas 45 a 47 você deve achar private int codFuncao .
28
Figura 53 - Classe Funcionários – Declaração da chave estrangeira
Fonte: Própria (2012)
A IDE Netbeans gera automaticamente a declaração os campos das tabelas, com seus
respectivos tipos de dados que são obtida através do dicionário de dados do bando de dados.
Para que a Entidade “Funcionarios” possa ter acesso a “Funcoes”, será necessário dentro dela
para realizar uma notação que as ligará por meio de cardinalidade.
O pronto de partida para esta relação seja realizada é que a declaração do campo seja
alterada do seu tipo padrão que está no banco de dados, neste caso: de “int” para o tipo de
dados de Entidade: “Funcoes”, veja como realizar.
1. Localize o trecho: “private int codFuncao”.
2. Apague o tipo “int” e com ajuda do atalho “Ctrl+ESPAÇO” digite “Funcoes” e o
programa irá te auxiliar na escolha.
Figura 54 - Classe Funcionários – Tipo de dados da chave estrangeira
Fonte: Própria (2012)
Depois de selecionado, normalmente o nome ficara grifado na cor amarelo.
29
Figura 55 - Classe Funcionários – Campos chaves estrangeiras
Fonte: Própria (2012)
Logo abaixo entre as linhas 54 e 56 pode ser encontrado o seguinte trecho: “public
Funcionarios (integer codFuncionario, String funcionário, int codFuncao)”.
Figura 56 - Classe Funcionários – Construtor
Fonte: Própria (2012)
Em todos os lugares onde o campo “cod_funcao” estiver declarado com o tipo “int”, deverá ser
alterado para o tipo “Funcoes”. Para realizar esse passo selecione o tipo int e substitua para
Funcoes assim como a figura abaixo (não se esqueça de usar Ctrl+ESPAÇO para o auxílio da
escrita).
Figura 57 - Classe Funcionários – Tipo Funcoes
Fonte: Própria (2012)
Normalmente o nome da classe Funcoes ficará grifado de amarelo, devido sua seleção.
30
Figura 58 - Classe Funcionários – Alterando tipo
Fonte: Própria (2012)
Para encontrar os pontos mais facilmente, na barra de rolagem do lado direito de um clique no
ponto vermelho conforme a imagem abaixo:
Figura 59 - Classe Funcionários - Demarcações de erro
Fonte: Própria (2012)
Aproximadamente na linha 80 você encontrará public int getCodFuncao () {
Figura 60 - Classe Funcionários – Método getCodFuncao()
Fonte: Própria (2012)
public int getCodFuncao () - Troque o tipo primitivo “int” por “Funcoes” ( Não se esqueça de
usar Ctrl+ESPAÇO ).
Figura 61 - Classe Funcionários – Alterando tipo
Fonte: Própria (2012)
Logo abaixo entre as linhas 84 e 88 pode ser encontrado o trecho public void setCodFuncao
(int codFuncao).
31
Figura 62 - Classe Funcionários – Encapsulamento (setCodFuncao)
Fonte: Própria (2012)
public void setCodFuncao (int codFuncao) - mude o int para Funcoes ( Não esqueça de usar o
atalho Ctrl+ESPAÇO para o auxílio da escrita).
Figura 63 - Classe Funcionários – Alterando encapsulamento
Fonte: Própria (2012)
O assistente pode surgir em algumas ocasiões.
O tipo abaixo pode ser alterado manualmente, ou através do assistente “Lampada amarela”,
basta clicar e selecionar “Alterar tipo de...”
O texto irá se corrigir automaticamente.
Figura 64 - Classe Funcionários - oldCodFuncao
Fonte: Própria (2012)
Relacionamento entre Entidades – Notação ManyToOne
Na barre de rolagem selecione o traço de cor laranja, para definirmos o relacionamento.
Figura 65 - Classe Funcionários – Criar o relacionamento
Fonte: Própria (2012)
Selecione o símbolo do inicio do texto “Criar relacionamento bidirecional ManyToOne”
32
Figura 66 - Classe Funcionários – ManyToOne (Cardinalidade)
Fonte: Própria (2012)
A tela para criar um relacionamento bidirecional surgirá.
1. Apague o ultimo “s” do nome “funcionarioss”.
2. Complete o nome com “List”.
3. Ficará dessa forma: “funcionariosList”.
4. Clique no botão OK
Figura 67 - Classe Funcionários – Criar relacionamento bidirecional
Fonte: Própria (2012)
Neste momento, na classe “Funcoes” será adicionado um campo chamado: “funcionariosList”
do tipo lista. Isso para que possamos através da classe que representa função, relacionar
todos os funcionários.
Salve o projeto no menu Arquivo >> “Salvar Todos”.
33
Figura 68 – Salvar projeto
Fonte: Própria (2012)
Para que todos os arquivos de propriedade estejam atualizados, selecione no menu Executar
>> “Limpar e construir projeto principal”.
Figura 69 – Executar – Limpar e construir
Fonte: Própria (2012)
Chave estrangeira – Caixa de combinação
No pacote “colaboradores” selecione abrir em “JFFuncionarios.java”
Figura 70 – Abrir formulário JFFuncionarios
Fonte: Própria (2012)
Exclua o campode texto de Cod_Funcao.
34
Figura 71 – Formulário Funcionarios – Campo cod_funcao
Fonte: Própria (2012)
O campo de texto de “cod_funcao” ficará sem nada a sua frente.
Figura 72 – Formulário Funcionarios – Campo Cod Funcao
Fonte: Própria (2012)
Abra Paleta no menu Controle Swing e selecione Caixa de combinação e arraste para o campo
em frente ao Cod_Funcao.
35
Figura 73 – Formulário Funcionarios (caixa de combinação para campos chaves estrangeira)
Fonte: Própria (2012)
Redimensione a “Caixa de combinação” até alinhar com os outros campos.
Figura 74 – Caixa de combinação - Redimensionar
Fonte: Própria (2012)
Binding Elements – Vincular elementos de uma entidade a caixa de
combinação
Para preenchermos a caixa de combinação com a listagem com todas as funções ligadas ao
banco de dados, é preciso com o botão direito clicar na caixa de combinação e selecione
Vincular > elements.
Esse processo chama-se “Binding” que significa vinculação.
Figura 75 – Caixa de combinação - Vincular
Fonte: Própria (2012)
Na tela Vincular clique em “Importar dados para o formulário”.
36
Figura 76 – Caixa de combinação – Importar dados para o formulário
Fonte: Própria (2012)
Escolha a aba vinculação na tela que se abrirá, escolha a tabela “Funcoes” e clique em OK,
conforme a figura abaixo.
Figura 77 - Caixa de combinação – Elementos
Fonte: Própria (2012)
Caixa de combinação – Renderer
No painel do projeto em propriedade do campo Cod Funcao.
Para que a listagem retorne o nome da função ao invés dos códigos, colocaremos um retorno
na caixa de seleção através de propriedades > RENDERER.
Clique no botão “...”, tres pontinhos a frente da propriedade “renderer”.
Figura 78 - Caixa de combinação – Renderer
Fonte: Própria (2012)
37
Após executar o passo anterior aparecerá uma tela como está abaixo.
Figura 79 - Seletor de componente
Fonte: Própria (2012)
Iniciaremos assim o processo de definição da propriedade, selecionando os devidos campos,
SELETOR DE COMPONENTE>CÓDIGO PERSONALIZADO.
Figura 80 - Seletor - Personalizar componente
Fonte: Própria (2012)
38
Após clicar em código personalizado, escreva o seguinte código dentro do espaço:
“jComboBox1.setRenderer” , e clique em “OK” logo em seguida no botão “OK” da janela.
new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(
JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Funcoes) {
Funcoes mec = (Funcoes)value;
setText(mec.getFuncao());
}
return this;
}
}
No código acima, substitua os trechos em negrito e sublinhado por sua classe, neste exemplo
“Funcoes”.
Figura 81 - Caixa de combinação – renderer
Fonte: Própria (2012)
Ainda no campo PROPRIEDADES, clique em FECHAR.
39
O IDE Netbeans mostrará a seguinte janela e com o campo da caixa de texto do Cod Funcao
criado na interface, ainda selecionado, selecione o botão Código-fonte da barra de ferramenta,
que irá permitir exibir o código-fonte da classe.
Figura 82 - Código fonte da classe
Fonte: Própria (2012)
Siga as orientações conforme figura abaixo e clique sobre o demarcador de erro que aparece
ao lado da barra de rolagem.
Figura 83 - Demarcação de erro
Fonte: Própria (2012)
Quando adicionamos o código ao renderer, no código fonte acusou falta das bibliotecas
necessárias, sendo assim, faremos a importação. Clique com botão direito em um espaço
vazio do código-fonte e em Corrigir importações.
Figura 84 - Corrigir importações
Fonte: Própria (2012)
Agora que os erros de importação foram corrigidos. Clique no campo Projeto para retornarmos
a interface gráfica.
40
Figura 85 - Visualizar projeto
Fonte: Própria (2012)
Configurar componente JTable - Tabela
Na grade o campo onde deveria aparecer a função, ainda está “cod Funcao”. Para corrigirmos
isso, iremos acessar o conteúdo da tabela e alterar. Clique com o botão direito do mouse e
selecione a opção Conteúdo da tabela.
Figura 86 - Conteúdo da tabela
Fonte: Própria (2012)
Após executar o passo anterior, aparecerá a seguinte janela, clique na Aba Colunas para editar
os campos.
Figura 87 - Tabela (Colunas)
Fonte: Própria (2012)
41
Na Caixa de diálogo Personalizador, clique na aba COLUNAS>COD FUNCAO.
Selecione o campo Expressão, clique em “+” da pasta CodFuncao. Ao expandir os campos
contidos dentro da pasta e clique sobre “funcao".
Figura 88 - Personalizador (funcao)
Fonte: Própria (2012)
Após realização desse passo, a janela pode ser fechada, basta clicar no botão FECHAR.
Para definirmos qual item será marcado ao escolher uma função na caixa de combinações,
selecionaremos a caixa de combinação do “Cod função” e com um clique com o botão direito
do mouse, Vincular > selectedItem.
Figura 89 - Vincular Item
Fonte: Própria (2012)
42
Na aba Vinculação, no campo “Origem da vinculação” escola a opção “masterTable”.
Figura 90 – Origem da vinculação
Fonte: Própria (2012)
Logo depois de escolher a Origem de Vinculação, precisaremos escolher a Expressão de
Vinculação. Então deveremos Clicar no “+” em “selectedElement colaboradeos.Funcionarios”
para abrir a pasta.
Ao abrirmos a pasta requerida, selecione como Expressão de Vinculação “codFuncao
colaboradores.Funcoes”, para seguir em frente.
Figura 91 - Expressão de vinculação
Fonte: Própria (2012)
43
A vinculação deverá ficar conforme abaixo. Clique em fechar.
Figura 92 - Vinculação concluída
Fonte: Própria (2012)
Configuração da chave estrangeira – Notação @JoinColumn
Voltando a tela principal. Para abrirmos a classe clique com o botão direito do mouse sobre a
classe “Funcionarios.java” e em seguida “Abrir”.
Figura 93 - Abrir classe Funcionarios
Fonte: Própria (2012)
Os passos seguintes são muito importantes, uma vez que faremos a ligação entre as entidades
e sua cardinalidade usando notações JPA.
Java Persistence API, chamada apenas de JPA, é uma API padrão do java para persistência
que deve ser implementada por frameworks que queiram seguir o padrão. A JPA define um
meio de mapeamento objeto-relacional para objetos Java simples e comuns (POJOs),
denominados beans de entidade.
Removeremos a notação @Basic da chave estrangeira.
Perceba que na linha 45(está escrito: @Basic (optional = false)), selecione a linha e exclu-a.
Figura 94 - Notação @Basic
Fonte: Própria (2012)
Faremos o mesmo processo com a linha 46(que está escrito: @Column(name=”cod_funcao”)).
Selecione-a e exclu-a.
44
Essa notação @Column será substituída por um @JoinColumn.
Figura 95 - Notação @Column
Fonte: Própria (2012)
Utilizando “ctrl + barra de espaço”, coloque um comando na linha 46, o “@JoinColumn”.
Repare que entre os parênteses não tem absolutamente nada, por isso devemos, utilizando o
“ctrl + espaço”, digitar “name”(sem aspas).
Figura 96 - Notação @JoinColumn - Primeiros passos
Fonte: Própria (2012)
A notação deve ficar conforme abaixo:
@JoinColumn (name=”cod_funcao”,referencedColumnName=”cod_funcao”)
Figura 97 - @JoinColumn (completa)
Fonte: Própria (2012)
Finalizando o projeto precisamos saber se está tudo funcionando, por isso devemos limpar oprojeto principal e construí-lo. Portanto vá até a Barra de Ferramentas no menu Executar >>
Limpar e Contruir o Projeto Principal (ou através das teclas de atalho Shift+F11).
45
Figura 98 - Limpar e Construir o Projeto Principal
Fonte: Própria (2012)
Finalizando projeto – Compilar e testar
Depois de limpo e construído, podemos vê-lo funcionar, ou seja, executá-lo. Para isso
deveremos clicar com o botão direito em “JFFuncionarios” e no menu escolher “Executar
arquivo”. (Shift+F6).
Figura 99 - Executar arquivo
Fonte: Própria (2012)
46
E finalmente irá aparecer a tela do programa rodando. Para testar as funcionalidades CRUD,
inicie clicando em “New” (do inglês: Novo).
Figura 100 - Formulário Funcionarios - Primeira execução
Fonte: Própria (2012)
Coloque o nome do Funcionário e selecione sua função. Usaremos de exemplo o funcionário
Douglas e sua função será Analista.
Depois de colocar o nome e a função, salve clicando em “Save” (do inglês: Salvar).
Figura 101 - Formulário Funcionarios – Salvando
Fonte: Própria (2012)
Pronto, agora é só atualizar para o programa mostrar o Codigo do Funcionário. Para atualizar
deverá clicar em Refresh (do inglês: Refrescar; Atualizar).