Você está na página 1de 18

01/08/13

Criando um cadastro de usurio em Java

Criando um cadastro de usurio em Java


Autor: Bruno Freixo Data: 05/01/2012 Mostre para seus amigos:
19

O objetivo deste artigo desenvolver uma aplicao em JSE (Java Standard Edition) de insero de dados utilizando alguns padres de projeto. Para isto, utilizaremos a IDE NetBeans (neste exemplo utilizo a verso 6.5.1) e o banco de dados MySQL Server (utilizo verso 5.5). claro que o leitor pode usar a verso mais adaptvel ao seu conhecimento. Subentende-se que para execuo deste artigo, o leitor j tenha algum conhecimento de conceitos como Programao Orientada a Objetos e Design Patterns (Padres de Projeto como FACTORY, DAO e MVC). OBS.: coloquei propositalmente imagens em tamanhos ampliados para que o leitor possa compreender melhor e executar o projeto sem dificuldades. Consideraes sobre a plataforma Java Para utilizarmos o Java faz-se necessrio uma mquina virtual chamada JVM (responsvel pelo uso multiplataforma do Java, isto , pelo seu uso em qualquer sistema operacional), o JRE (ambiente de execuo Java formado pela JVM e por bibliotecas) e o JDK (kit completo de desenvolvimento Java, composto por compilador, JVM e JRE.). Logo, ser necessrio a instalao de apenas uma ferramenta: JDK Java Development Kit;

Link para download: Escolha sua plataforma e baixe. JDK

Resumo Para criarmos nosso exemplo, precisaremos: 1) Banco de dados MySQL Server; Link para download: MySQL Clique em ">> No thanks, just take me to the downloads!". 2) IDE NetBeans. Alm das ferramentas, vamos enumerar 10 passos: 1) Banco de Dados; 2) O Projeto;
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 1/18

01/08/13

Criando um cadastro de usurio em Java

3) Factory; 4) Modelo; 5) DAO; 6) GUI; 7) Evento SAIR; 8) Evento LIMPAR; 9) Evento CADASTRAR; 10) Consulta atravs do console do MySQL Server.

Mo na massa: Passo 1: Banco de Dados Abra o console do MySQL Server em Iniciar > Todos os programas > Mysql > MySQL Server 5.5 > MySQL Server 5.5 Command Line Client e digite os seguintes comandos:

c r e a t ed a t a b a s ep r o j e t o j a v a ; u s ep r o j e t o j a v a ; C R E A T ET A B L Eu s u a r i o( i dB I G I N T ( 1 0 )A U T O _ I N C R E M E N T , n o m eV A R C H A R ( 2 5 5 ) , c p fV A R C H A R ( 2 5 5 ) , e m a i lV A R C H A R ( 2 5 5 ) , t e l e f o n eV A R C H A R ( 2 5 5 ) , P R I M A R YK E Y( i d ) ) ;

Ou seja, teremos a tabela usuario com 5 atributos (id, nome, CPF, email, telefone). Agora, vamos abrir o NetBeans em Iniciar > Todos os programas > NetBeans > NetBeans IDE > NetBeans IDE 6.5.1 e comear a pr a mo na massa no desenvolvimento da aplicao. OBS.: durante todo o desenvolvimento da aplicao seguiro imagens para facilitar o aprendizado.

Passo 2: O Projeto Arquivo > Novo projeto;

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

2/18

01/08/13

Criando um cadastro de usurio em Java

Na aba Novo projeto, clique em Java e em Aplicativo Java. Clique em prximo.

Na aba Novo aplicativo Java, em Nome do projeto digite MinhaAplicacao. Desmarque a opo Criar classe principal. Clique em finalizar.

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

3/18

01/08/13

Criando um cadastro de usurio em Java

Agora vamos criar os pacotes ou packages. Clique com o boto direito em Pacotes de cdigos-fonte e com o boto esquerdo do mouse escolha Novo > Pacote Java...

Na aba Novo Pacote Java digite factory para Nome do pacote. Clique em Finalizar.

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

4/18

01/08/13

Criando um cadastro de usurio em Java

Repita o processo de criao de pacote, criando os seguintes pacotes, alm do pacote factory: modelo, dao,gui. Assim ficar a viso geral do projeto (no canto esquerdo do NetBeans):

Passo 3: Factory: Factory significa fbrica e ConnectionFactory significa fbrica de conexes. Factory ser o nome do pacote e ConnectionFactory o nome da classe que far a interface com o driver JDBC de conexo a qualquer banco que desejar. Por isso o nome fbrica, pois o JDBC permite a conexo a qualquer banco: MySQL, Postgree, Oracle, SQL Server, etc., somente alterando a linha do mtodo getConnection. Vamos comear criando a classe ConnectionFactory no pacote factory. V com o boto direito at factory e clique com o boto esquerdo em Novo > Classe Java.

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

5/18

01/08/13

Criando um cadastro de usurio em Java

Na aba Novo Classe Java em Nome da Classe escolha o nome ConnectionFactory. Clique em Finalizar.

O script abaixo representa a classe de conexo ConnectionFactory. Copie e cole na classe ConnectionFactory:

/ /s i t u ae mq u a lp a c k a g eo u p a c o t e e s t ac l a s s e p a c k a g ef a c t o r y ; / /f a za si m p o r t a e sd ec l a s s e sn e c e s s r i a sp a r aof u n c i o n a m e n t od op r o g r a m a i m p o r tj a v a . s q l . C o n n e c t i o n ;/ /c o n e x oS Q Lp a r aJ a v a i m p o r tj a v a . s q l . D r i v e r M a n a g e r ;/ /d r i v e rd ec o n e x oS Q Lp a r aJ a v a i m p o r tj a v a . s q l . S Q L E x c e p t i o n ;/ /c l a s s ep a r at r a t a m e n t od ee x c e e s p u b l i cc l a s sC o n n e c t i o n F a c t o r y{ p u b l i cC o n n e c t i o ng e t C o n n e c t i o n ( ){ t r y{

r e t u r nD r i v e r M a n a g e r . g e t C o n n e c t i o n ( " j d b c : m y s q l : / / l o c a l h o s t / p r o j e t o j a v a " , " s e u n o m e d e u s u a r i o " , " s u a s e


www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 6/18

01/08/13

Criando um cadastro de usurio em Java

} c a t c h ( S Q L E x c e p t i o ne x c e c a o ){ t h r o wn e wR u n t i m e E x c e p t i o n ( e x c e c a o ) ; } } }

Salve a alterao (CTRL+S). OBS.: no esquea de salvar todas as alteraes nos cdigos ao decorrer do tutorial. OBS 2: altere "seu-nome-de-usuario" e "sua-senha" para as configuraes do seu Banco de Dados. Vamos criar uma classe para testar a conectividade ao MySQL. Pode ser dentro do pacote factory mesmo... Coloquemos o nome TestaConexao:

Clique em Finalizar. Script da classe TestaConexao:

p a c k a g ef a c t o r y ; i m p o r tj a v a . s q l . C o n n e c t i o n ; i m p o r tj a v a . s q l . S Q L E x c e p t i o n ; p u b l i cc l a s sT e s t a C o n e x a o{ p u b l i cs t a t i cv o i dm a i n ( S t r i n g [ ]a r g s )t h r o w sS Q L E x c e p t i o n{ C o n n e c t i o nc o n n e c t i o n=n e wC o n n e c t i o n F a c t o r y ( ) . g e t C o n n e c t i o n ( ) ; S y s t e m . o u t . p r i n t l n ( " C o n e x oa b e r t a ! " ) ; c o n n e c t i o n . c l o s e ( ) ; } }

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

7/18

01/08/13

Criando um cadastro de usurio em Java

Para executar qualquer aplicativo no NetBeans teclamos SHIFT+F6. Faa-o. Perceba que uma mensagem de erro exibida no console. Esta mensagem de erro significa ausncia do driver JDBC. Precisamos baix-lo para assim fazermos a conexo. Endereo para download: http://www.oficinadanet.com.br/redirect.php? urlout=http://dev.mysql.com/downloads/mirror.php?id=404191#mirrors" rel="nofollow" Se o arquivo vier compactado, descompacte-o e escolha o diretrio de sua preferncia. Depois de baixar o driver JDBC, v em: Bibliotecas > Adicionar JAR/pasta...

Escolha o diretrio onde instalou o driver JDBC e clique em Open. Execute o projeto. Agora sim funcionou! Se a mensagem que apareceu no console foi parecida com:

r u n : C o n e x oa b e r t a ! C O N S T R U D OC O MS U C E S S O( t e m p ot o t a l :1s e g u n d o )

, ento sua conexo foi estabelecida! OBS 3: se mesmo assim no funcionar, especifique a porta do servidor ao lado do localhost. Exemplo: localhost:3307

Passo 4: Modelo: Agora, criemos a classe Usuario, dentro do pacote modelo: modelo > Novo > Classe Java > Usuario > Finalizar.

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

8/18

01/08/13

Criando um cadastro de usurio em Java

Crie as variveis id (Long), nome, CPF, email, telefone (todas string) e os mtodos getters e setters. Assim ficar o script da classe:

p a c k a g em o d e l o ; p u b l i cc l a s sU s u a r i o{ L o n gi d ; S t r i n gn o m e ; S t r i n gc p f ; S t r i n ge m a i l ; S t r i n gt e l e f o n e ; p u b l i cS t r i n gg e t C p f ( ){ r e t u r nc p f ; } p u b l i cv o i ds e t C p f ( S t r i n gc p f ){ t h i s . c p f=c p f ; }
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 9/18

01/08/13

Criando um cadastro de usurio em Java

p u b l i cS t r i n gg e t E m a i l ( ){ r e t u r ne m a i l ; } p u b l i cv o i ds e t E m a i l ( S t r i n ge m a i l ){ t h i s . e m a i l=e m a i l ; } p u b l i cL o n gg e t I d ( ){ r e t u r ni d ; } p u b l i cv o i ds e t I d ( L o n gi d ){ t h i s . i d=i d ; } p u b l i cS t r i n gg e t N o m e ( ){ r e t u r nn o m e ; } p u b l i cv o i ds e t N o m e ( S t r i n gn o m e ){ t h i s . n o m e=n o m e ; } p u b l i cS t r i n gg e t T e l e f o n e ( ){ r e t u r nt e l e f o n e ; } p u b l i cv o i ds e t T e l e f o n e ( S t r i n gt e l e f o n e ){ t h i s . t e l e f o n e=t e l e f o n e ; } }

Passo 5: DAO: Crie no pacote DAO a classe UsuarioDAO: dao > Novo > Classe Java > UsuarioDAO > Finalizar. Neste pacote ficam as classes que so responsveis pelo CRUD (Create, Retrieve, Update, Delete ou Criar, Consultar, Alterar, Deletar), isto , dados de persistncia. Mas no nosso caso no criamos mais que uma tabela na Base de Dados, conseqentemente, nenhum relacionamento. Alm disso, neste exemplo, criaremos o Cadastro de Usurio, isto , s vamos usar o Create do CRUD. Numa prxima oportunidade podemos aprender os outros mtodos (alterar, consultar e deletar). Em Create, criaremos o mtodo adiciona. Passaremos o prprio objeto "usuario" como parmetro da funo:

a d i c i o n a( U s u a r i ou s u a r i o ) .

Usuario com letra maiscula representa a classe e com letra minscula representa o Objeto. Como s vamos representar o mtodo adiciona, no h necessidade de inserir a varivel id, pois a mesma auto-incremento, ou seja, no momento da insero, este campo ser preenchido automaticamente na tabela usurio do Banco de Dados. Se usssemos o mtodo altera ou o mtodo remove, a sim precisaramos declarar a varivel id. Na classe Usuario do pacote modelo criamos o id pois o modelo do negcio precisa abranger o todo, at mesmo
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 10/18

01/08/13

Criando um cadastro de usurio em Java

para futuras consultas. Eis o script abaixo da classe UsuarioDAO:

p a c k a g ed a o ; i m p o r tf a c t o r y . C o n n e c t i o n F a c t o r y ; i m p o r tm o d e l o . U s u a r i o ; i m p o r tj a v a . s q l . * ; i m p o r tj a v a . s q l . P r e p a r e d S t a t e m e n t ; p u b l i cc l a s sU s u a r i o D A O{ p r i v a t eC o n n e c t i o nc o n n e c t i o n ; L o n gi d ; S t r i n gn o m e ; S t r i n gc p f ; S t r i n ge m a i l ; S t r i n gt e l e f o n e ; p u b l i cU s u a r i o D A O ( ) { t h i s . c o n n e c t i o n=n e wC o n n e c t i o n F a c t o r y ( ) . g e t C o n n e c t i o n ( ) ; } p u b l i cv o i da d i c i o n a ( U s u a r i ou s u a r i o ) { S t r i n gs q l=" I N S E R TI N T Ou s u a r i o ( n o m e , c p f , e m a i l , t e l e f o n e )V A L U E S ( ? , ? , ? , ? ) " ; t r y{ P r e p a r e d S t a t e m e n ts t m t=c o n n e c t i o n . p r e p a r e S t a t e m e n t ( s q l ) ; s t m t . s e t S t r i n g ( 1 ,u s u a r i o . g e t N o m e ( ) ) ; s t m t . s e t S t r i n g ( 2 ,u s u a r i o . g e t C p f ( ) ) ; s t m t . s e t S t r i n g ( 3 ,u s u a r i o . g e t E m a i l ( ) ) ; s t m t . s e t S t r i n g ( 4 ,u s u a r i o . g e t T e l e f o n e ( ) ) ; s t m t . e x e c u t e ( ) ; s t m t . c l o s e ( ) ; }c a t c h( S Q L E x c e p t i o nu ){ t h r o wn e wR u n t i m e E x c e p t i o n ( u ) ; } } }

Passo 6: GUI (Graphical User Interface ou Interface Grfica de Usurio) Nossa aplicao back-end est toda finalizada. Precisamos aprontar o front-end, isto , a interface de usurio, a classe que ser responsvel pela interao com o usurio, ou seja, o formulrio de entrada. Vamos criar o formulrio que ser preenchido pelo usurio: gui > Novo > Formulario JFrame > UsuarioGUI >
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 11/18

01/08/13

Criando um cadastro de usurio em Java

Finalizar. A seguinte tela aparecer:

Para criarmos os elementos do formulrio necessrio o arrastar e soltar do mouse. A esse processo, vou criar a sigla ASM para facilitar nosso entendimento. Arrasta-se os componentes SWING para o formulrio. Portanto, quando eu chamar o nome do componente e colocar ao lado a sigla ASM, subentende-se que para arrastar componentes da paleta e solt-los no Formulrio. direita, na paleta de componentes, em Controles Swing, clique em Rtulo ASM. Escreva Cadastro de Usurio. Com o boto direito do mouse em cima do rtulo clique em Propriedades e em "font" escolha tamanho 18 e clique em OK. Veja:

Agora na paleta de componentes, em Continers SWING, escolha Painel ASM. Clique com o boto direito do mouse e escolha Propriedades. Clique em border > Borda de ttulo. Intitule Cadastrar novo usurio. Clique em OK e depois fechar. Veja:

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

12/18

01/08/13

Criando um cadastro de usurio em Java

Escreva mais 4 rtulos dentro do painel: Nome , CPF, Email, Telefone . Agora escolha na paleta de componentes 4 campos de textos representando de forma respectiva cada um dos rtulos mencionados. Veja:

Finalmente vamos criar os botes. Na aba Paleta > Controles SWING, v at Boto ASM. Crie dois botes, conforme mostra a imagem abaixo:

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

13/18

01/08/13

Criando um cadastro de usurio em Java

Escreva jButton1 como Cadastrar e jButton2 como Limpar. Veja:

Agora, fora do painel, crie o boto SAIR. Faa o mesmo processo: sobrescreva jButton3 para SAIR.

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

14/18

01/08/13

Criando um cadastro de usurio em Java

Clicando em ALT+F6 temos uma viso geral do projeto em execuo:

Passo 7: Evento SAIR Clique duas vezes no boto SAIR para criarmos o evento. Na aba Cdigo-Fonte, no mtodo referente a jButton3, isto , ao boto SAIR, digite:

S y s t e m . e x i t ( 0 ) ;

Este comando fecha a janela em execuo. D um ALT+F6 e agora clique no boto SAIR. A janela ser fechada.
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 15/18

01/08/13

Criando um cadastro de usurio em Java

Passo 8: Evento LIMPAR Agora, na aba Projeto, d dois cliques em Limpar. No mtodo jButton2ActionPerformed, na aba Cdigo-fonte, escreva os seguintes scripts:

j T e x t F i e l d 1 . s e t T e x t ( " " ) ; j T e x t F i e l d 2 . s e t T e x t ( " " ) ; j T e x t F i e l d 3 . s e t T e x t ( " " ) ; j T e x t F i e l d 4 . s e t T e x t ( " " ) ;

Estes scripts so responsveis por limpar ou apagar qualquer string escrita pelo usurio em cada um dos 4 campos de texto do formulrio.

Passo 9: Evento CADASTRAR Precisamos criar o principal evento que literalmente cadastrar o usurio. Para isso, vamos clicar duas vezesno boto Cadastrar e, na aba Cdigo-fonte, no evento jButton1ActionPerformed ficar assim o cdigo:

/ /i n s t a n c i a n d oac l a s s eU s u a r i od op a c o t em o d e l oec r i a n d os e uo b j e t ou s u a r i o s U s u a r i ou s u a r i o s=n e wU s u a r i o ( ) ; u s u a r i o s . s e t N o m e ( j T e x t F i e l d 1 . g e t T e x t ( ) ) ; u s u a r i o s . s e t C p f ( j T e x t F i e l d 2 . g e t T e x t ( ) ) ; u s u a r i o s . s e t E m a i l ( j T e x t F i e l d 3 . g e t T e x t ( ) ) ; u s u a r i o s . s e t T e l e f o n e ( j T e x t F i e l d 4 . g e t T e x t ( ) ) ; / /f a z e n d oav a l i d a od o sd a d o s J O p t i o n P a n e . s h o w M e s s a g e D i a l o g ( n u l l ," O sc a m p o sn op o d e mr e t o r n a rv a z i o s " ) ; } e l s e{ / /i n s t a n c i a n d oac l a s s eU s u a r i o D A Od op a c o t ed a oec r i a n d os e uo b j e t od a o U s u a r i o D A Od a o=n e wU s u a r i o D A O ( ) ; d a o . a d i c i o n a ( u s u a r i o s ) ; J O p t i o n P a n e . s h o w M e s s a g e D i a l o g ( n u l l ," U s u r i o" + j T e x t F i e l d 1 . g e t T e x t ( ) + "i n s e r i d oc o ms u c e s s o !" ) ; } / /a p a g ao sd a d o sp r e e n c h i d o sn o sc a m p o sd et e x t o j T e x t F i e l d 1 . s e t T e x t ( " " ) ; j T e x t F i e l d 2 . s e t T e x t ( " " ) ; j T e x t F i e l d 3 . s e t T e x t ( " " ) ; j T e x t F i e l d 4 . s e t T e x t ( " " ) ;

i f( ( j T e x t F i e l d 1 . g e t T e x t ( ) . i s E m p t y ( ) )| |( j T e x t F i e l d 2 . g e t T e x t ( ) . i s E m p t y ( ) )| |( j T e x t F i e l d 3 . g e t T e x t ( ) . i s E m

Certamente algumas mensagens de erro aparecero. Isto porque temos que importar no incio do cdigo as classes Usuario (pacote modelo) e UsuarioDAO (pacote dao). Alm destas, precisamos importar a classe JOptionPane , responsvel pelas janelas de validao, aquelas que aparecem dizendo se o usurio foi ou no cadastrado, se os campos esto vazios, etc.
www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java 16/18

01/08/13

Criando um cadastro de usurio em Java

Coloque estas linhas no incio do cdigo, abaixo de package gui, na aba Cdigo-fonte:

i m p o r tm o d e l o . U s u a r i o ; i m p o r td a o . U s u a r i o D A O ; i m p o r tj a v a x . s w i n g . J O p t i o n P a n e ;

Agora sim no aparecer erro nenhum e o cadastro poder ser feito. Faa um teste! Veja:

Passo 10: Consulta atravs do Console do MySQL Server V at o console do MySQL Server. Digite:

u s ep r o j e t o j a v a ; s e l e c t*f r o mu s u a r i o ;

A seguinte tela aparecer:

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

17/18

01/08/13

Criando um cadastro de usurio em Java

Pronto. Se todos os passos foram seguidos corretamente, sua aplicao foi executada com sucesso. O Java no uma tecnologia fcil de se aprender logo de incio, mas depois que voc entende os principais conceitos de orientao a objetos e as hierarquias de classes, o entendimento fica bem mais elucidado. Espero mesmo que este artigo possa ajudar seus projetos na empresa que voc trabalha, na sua faculdade ou mesmo nos seus estudos. Numa prxima oportunidade podemos tratar todas as etapas do CRUD: insero de dados (que vimos hoje neste artigo), alterao de dados, excluso de dados e consulta de dados em um datagrid. Um abrao a todos, Bons estudos e at a prxima!

www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-usuario-em-java

18/18