Académique Documents
Professionnel Documents
Culture Documents
RESUMO
Este artigo apresenta o desenvolvimento de um exemplo de sistema para manuteno de
dados de departamentos. Apresentam-se aqui as tcnicas e as ferramentas empregadas nesse
desenvolvimento, bem como os resultados obtidos durante a realizao do mesmo. Esse
sistema foi desenvolvido empregando-se o paradigma da Orientao a Objetos, o Java, a IDE
NetBeans 6.5, o framework Hibernate e o SGBD MySQL.
PALAVRAS-CHAVE: JAVA, MVC, DAO, HIBERNATE E MYSQL.
ABSTRACT
This article presents the development of an example system for maintenance of data from
departments. The techniques and the tools used in this development are presented here, as
well as the results gotten during his accomplishment. This system was developed using the
Object-Oriented paradigm, the Java, the NetBeans 6.5 IDE, the Hibernate framework and the
MySQL DBMS .
KEY-WORDS: JAVA, HIBERNATE, MVC, DAO,E MYSQL.
1 - Mestre em Informtica pelo Instituto Tecnolgico de Aeronutica, Professor do curso de
Sistemas de Informao da Faculdade Metodista Granbery e Analista de Sistemas da
Prefeitura de Juiz de Fora. Email:eliolovisi.professor@gmail.com
2 - Graduado em Sistemas de Informao pela Faculdade Metodista Granbery e programador
da Prefeitura de Juiz de Fora. Email:gustavomanso@gmail.com
1. INTRODUO
Apresenta-se aqui o desenvolvimento de um exemplo acadmico de caso de uso, que
implemente as operaes bsicas de acesso a um banco de dados, empregando a abordagem
MVC e o padro de projetos DAO. No ser apresentada a implementao de todas as
funes de um aplicativo profissional.
A abordagem MVC - Modelo, Viso e Controle (Model, View and Controller) define
como os componentes da aplicao iro interagir entre si. Este padro de arquitetura divide os
objetos em trs conjuntos:
Alm disso, para a manipulao dos dados do sistema foram empregados objetos de
acesso, conhecidos como DAO (Data Access Object), que permitem que as regras de negcio
sejam separadas das regras para acesso aos dados, de forma que sejam criadas classes
exclusivas para o acesso ao SGBD (XAVIER, 2007).
A aplicao desenvolvida empregar a linguagem de programao JAVA, que uma
linguagem de programao orientada a objetos. No entanto, a maioria dos SGBD's utilizados
atualmente emprega o modelo relacional. Logo, existe a necessidade de realizar a traduo
entre os dois modelos. Para tanto ser empregado o framework Hibernate. (KING, 2007)
As ferramentas empregadas no desenvolvimento deste tutorial foram:
empregado o SGBD MySQL. Para esse tutorial foi criado um banco de dados chamado
exemplohibernate, com o usurio root e a senha vazia.
Nesse banco crie a tabela departamento utilizando o script abaixo:
CREATE TABLE `departamento` (
`id` int(11) NOT NULL auto_increment,
`nome` varchar(60) default NULL,
`area` varchar(60) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB
Na ferramenta NetBeans 6.5 crie um novo projeto chamado ExemploHibernate, e
inclua no seu pacote de cdigo fonte (Source Package), os seguintes pacotes: DAO, model,
control e view .(GONALVES,2006)
Para este aplicativo ser necessria a utilizao das bibliotecas do Hibernate JPA e do
driver JDBC que far o acesso ao banco. Logo, ser necessria a construo de Librarys no
NetBeans para o armazenamento e organizao destes arquivos. Para isso, deve-se criar uma
Library para o driver JDBC do MySQL.
O NetBeans permite a construo de Librarys atravs da opo Library Manager no
menu Tools. Ao escolher esta opo a janela Library Manager ser aberta e basta clicar no
boto New Library... no canto inferior esquerdo da mesma como na figura a seguir.
id (Integer)
nome (String)
area (String)
throws
return lista;
}
public Object carregarUm(int id, Class clas) throws HibernateException {
Session session = hibernateConfiguracao.openSession();
Transaction transaction = session.beginTransaction();
Criteria criteria = session.createCriteria(clas);
criteria.add(Expression.eq("id", id));
Object obj = criteria.uniqueResult();
transaction.commit();
session.close();
return obj;
}
}
Para esta classe, sero necessrias as seguintes importaes:
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
No mesmo pacote, crie o DAODepartamento, herdando do DAOGenerico e com um
construtor prprio.
6. CONSTRUINDO O CONTROLADOR (CONTROLLER)
No pacote control, crie uma nova classe, chamada CtrManterDepartamento. Nessa
classe crie um atributo utilizando o seguinte cdigo:
DAODepartamento acessohibernatedepto = new DAODepartamento();
Aps isso inclua o cdigo a seguir.
public CtrManterDepartamento( ){
}
public int gravarDepartamento(Departamento departamento) {
try {
acessohibernatedepto.gravar(departamento);
return 1;
} catch (HibernateException e) {
e.printStackTrace();
return 2;
}
}
7. CONSTRUINDO O FORMULRIO (VIEW)
Num primeiro momento, iremos criar um formulrio que permita somente a incluso
dos departamentos. Para isso, no pacote view, crie um novo JFrame, chamado
7
FrmManterDepartamento. (GONALVES,2006)
Insira um JButton Incluir (jBtnIncluir) e dois JtextField (jTxtNome, jTxtArea) para
o nome e a rea do departamento. Aps isso, crie 2 atributos no cdigo do formulrio,
conforme o apresentado abaixo.
CtrManterDepartamento ctrManterDepartamento = new CtrManterDepartamento();
Departamento depart = new Departamento();
Crie um evento para o boto (Events Action actionPerformed) e insira o cdigo a
seguir no evento criado.
depart.setNome(jTxtNome.getText());
depart.setArea(jTxtArea.getText());
if (ctrManterDepartamento.gravarDepartamento(depart) == 1) {
JOptionPane.showMessageDialog(this, "Objeto persistido");
} else {
JOptionPane.showMessageDialog(this, "Objeto no persistido");
}
A seguir, mostrado um exemplo deste JFrame.
telaPrincipal.setExtendedState(MAXIMIZED_BOTH);
}
Agora crie um evento actionPerformed no boto e insira o seguinte cdigo.
FrmManterDepartamento telaDepartamento = new FrmManterDepartamento();
telaDepartamento.setVisible(true);
telaDepartamento.setLocationRelativeTo(this);
Nesse momento o aplicativo j deve permitir a incluso de departamentos. Execute o
programa para avaliar os resultados. Se desejar, inclua o cdigo para limpar os campos, caso o
departamento seja inserido corretamente. Alm disso, incluir tambm cdigos para validao
dos atributos, observando o tamanho mximo dos registros no banco de dados.
Por enquanto, para visualizar o resultado da execuo, utilize a ferramenta SQLyog.
9. LISTANDO OS OBJETOS
Para permitir a visualizao dos dados, insira um componente JList no formulrio
FrmManterDepartamento e faa as seguintes alteraes:
Aumente a largura da lista;
Altere o nome para jLstDepartamentos;
Remova todos os itens de sua propriedade model; e
Altere a propriedade selectionMode para Single.
O formulrio deve ficar com a seguinte aparncia.
Figura 05. Tela para manuteno de dados alterada para permitir a listagem dos objetos.
9
10
11
Figura 06. Tela para manuteno de dados permitindo a listagem, incluso, alterao e excluso
de objetos.
}
Finalmente, execute o programa e observe os resultados. Se desejar, limpe os campos
da tela aps a alterao e a excluso do objeto.
encapsulamento. Sendo assim, ela poder ser facilmente reutilizada em outros sistemas.
Prope-se a aplicao, em trabalhos futuros, de outras formas de interao entre
os objetos das camadas do sistema, em especial com a aplicao do MVP (Passive View,
Supervising Controller). Pode-se tambm desenvolver outras formas de interao com o
usurio, aplicando-se diferentes tecnologias como Web ou Mobile.
13
14