You are on page 1of 12

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.
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.: este tutorial propositalmente no utiliza framework para desenvolvimento MVC (Struts,
Spring) e nem ferramenta ORM (Hibernate) justamente para forar o leitor a entender conceitos
bsicos de utilizao da linguagem.
Confira nosso curso: Curso de introduo ao Java
Consideraes sobre a plataforma Java
Para utilizarmos o Java faz-se necessrio a instalao de duas ferramentas::
JDK - Java Development Kit;
JRE - Java Runtime Environment

Resumo
Para criarmos nossoexemplo, precisaremos:
Banco de dados MySQL Server; 1.
IDE NetBeans. 2.
Alm das ferramentas, vamos enumerar 10 passos:
Banco de Dados; 1.
O Projeto; 2.
Factory; 3.
Modelo; 4.
DAO; 5.
GUI; 6.
Evento SAIR; 7.
Evento LIMPAR; 8.
Evento CADASTRAR; 9.
Consulta atravs do console do MySQL Server. 10.
Mo na massa:
Passo 1: Banco de Dados
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
1 de 12 3/3/2014 23:02
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:
create database bd_exemplo;
use bd_exemplo;
CREATE TABLE usuario (
id BIGINT(10) AUTO_INCREMENT,
nome VARCHAR(255),
cpf VARCHAR(255),
email VARCHAR(255),
telefone VARCHAR(255),
PRIMARY KEY (id)
);
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;
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.
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
2 de 12 3/3/2014 23:02
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.
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):
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
3 de 12 3/3/2014 23:02
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.
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:
// situa em qual package ou pacote est a classe
package factory;
// faz as importaes de classes necessrias para o funcionamento do programa
import java.sql.Connection; // conexo SQL para Java
import java.sql.DriverManager; // driver de conexo SQL para Java
import java.sql.SQLException; // classe para tratamento de excees
public class ConnectionFactory {
public Connection getConnection() {
try {
return DriverManager.getConnection("jdbc:mysql://localhost/projetojava","
}
catch(SQLException excecao) {
throw new RuntimeException(excecao);
}
}
}
Salve a alterao (CTRL+S).
OBS.: no esquea de salvar todas as alteraes nos cdigos ao decorrer do tutorial.
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
4 de 12 3/3/2014 23:02
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:
package factory;
import java.sql.Connection;
import java.sql.SQLException;
public class TestaConexao {
public static void main(String[] args) throws SQLException {
Connection connection = new ConnectionFactory().getConnection();
System.out.println("Conexo aberta!");
connection.close();
}
}
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://dev.mysql.com/downloads/mirror.php?id=404191#mirrors
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:
run:
Conexo aberta!
CONSTRUDO COM SUCESSO (tempo total: 1 segundo)
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
5 de 12 3/3/2014 23:02
run:
Conexo aberta!
CONSTRUDO COM SUCESSO (tempo total: 1 segundo)
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.
Crie as variveis id (Long), nome, CPF, email, telefone (todas string) e os mtodos getters e
setters. Assim ficar o script da classe:
package modelo;
public class Usuario {
Long id;
String nome;
String cpf;
String email;
String telefone;
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Long getId() {
return id;
}
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
6 de 12 3/3/2014 23:02
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
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:
adiciona (Usuario usuario).
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 para
futuras consultas.
Eis o script abaixo da classe UsuarioDAO:
package dao;
import factory.ConnectionFactory;
import modelo.Usuario;
import java.sql.*;
import java.sql.PreparedStatement;
public class UsuarioDAO {
private Connection connection;
Long id;
String nome;
String cpf;
String email;
String telefone;
public UsuarioDAO(){
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Usuario usuario){
String sql = "INSERT INTO usuario(nome,cpf,email,telefone) VALUES(?,?,?,?)";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, usuario.getNome());
stmt.setString(2, usuario.getCpf());
stmt.setString(3, usuario.getEmail());
stmt.setString(4, usuario.getTelefone());
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
7 de 12 3/3/2014 23:02
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, usuario.getNome());
stmt.setString(2, usuario.getCpf());
stmt.setString(3, usuario.getEmail());
stmt.setString(4, usuario.getTelefone());
stmt.execute();
stmt.close();
} catch (SQLException u) {
throw new RuntimeException(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 > 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
emPropriedades 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:
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
8 de 12 3/3/2014 23:02
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:
Escreva jButton1 como Cadastrar e jButton2 como Limpar. Veja:
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
9 de 12 3/3/2014 23:02
Agora, fora do painel, crie o boto SAIR. Faa o mesmo processo: sobrescreva jButton3 para
SAIR.
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:
System.exit(0);
Este comando fecha a janela em execuo. D um ALT+F6 e agora clique no boto SAIR. A
janela ser fechada.
Passo 8: Evento LIMPAR
Agora, na aba Projeto, d dois cliques em Limpar.
No mtodo jButton2ActionPerformed, na aba Cdigo-fonte, escreva os seguintes scripts:
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
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 vezes no boto Cadastrar e, na aba Cdigo-fonte, no evento
jButton1ActionPerformed ficar assim o cdigo:
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
10 de 12 3/3/2014 23:02
Precisamos criar o principal evento que literalmente cadastrar o usurio. Para isso,
vamos clicar duas vezes no boto Cadastrar e, na aba Cdigo-fonte, no evento
jButton1ActionPerformed ficar assim o cdigo:
// instanciando a classe Usuario do pacote modelo e criando seu objeto usuarios
Usuario usuarios = new Usuario();
usuarios.setNome(jTextField1.getText());
usuarios.setCpf(jTextField2.getText());
usuarios.setEmail(jTextField3.getText());
usuarios.setTelefone(jTextField4.getText());
// fazendo a validao dos dados
if ((jTextField1.getText().isEmpty()) || (jTextField2.getText().isEmpty()) || (jTextF
JOptionPane.showMessageDialog(null, "Os campos no podem retornar vazios");
}
else {
// instanciando a classe UsuarioDAO do pacote dao e criando seu objeto dao
UsuarioDAO dao = new UsuarioDAO();
dao.adiciona(usuarios);
JOptionPane.showMessageDialog(null, "Usurio "+jTextField1.getText()+" inserido c
}
// apaga os dados preenchidos nos campos de texto
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
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.
Coloque estas linhas no incio do cdigo, abaixo de package gui, na aba Cdigo-fonte:
import modelo.Usuario;
import dao.UsuarioDAO;
import javax.swing.JOptionPane;
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:
use projetojava;
select * from usuario;
A seguinte tela aparecer:
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
11 de 12 3/3/2014 23:02
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!
Criando um cadastro de usurio em Java http://www.oficinadanet.com.br/artigo/java/criando-um-cadastro-de-us...
12 de 12 3/3/2014 23:02