Você está na página 1de 4

GUJ

http://www.guj.com.br
DB4O Um BD com estilo!
Italo Moreira Campelo Maia
Este artigo visa mostrar como criar um mini aplicativo com acesso a banco de dados utilizando
o DB4Objects.
Java e os bancos de dados
Seja em uma aplicao desktop ou em uma aplicao web, a no ser ue ela seja muito simples, !oc"
ir# em algum momento necessitar persistir dados. $e!ido % comple&idade ou/e import'ncia da
integridade dos dados persistidos, di!ersas (erramentas de persist"ncia (oram criadas, inclusi!e sistemas
especiali)ados na persist"ncia e obt"no de dados, os bancos de dados.
* tare(a de persist"ncia de dados em ja!a, a at+ pouco, era considerada uma ati!idade sacal, de!ido %
grande necessidade de codi(icao, muitas !e)es repetiti!a, e&igidida para se e&ecutar peuenas tare(as
no banco de dados. ,roblemas como o paradigma entre linguagens orientadas a objetos-../ e bancos de
dados relacionais t"m sido uma grande preucupao dos desen!ol!edores0 (erramentas como o 1ibernate
tentam tornar esse paradigma menos !is2!el, entretanto a necessidade de codi(icao de &ml ou do uso
e&tensi!o de annotations no chega a ser uma soluo ideal-embora caracteri)e um grande a!ano/.
3este artigo, mostrarei como se criar um peueno aplicati!o desktop de cadastro usando o
$45.bjects, ue no somente + um (ramework ue (acilita o processo de persist"ncia, como tamb+m + o
database em s2.
6spero ue o artigo esteja do agrado de todos.
O que voc j precisa saber:
Para usufluir integralmente do contedo mostrado neste artigo, importante
que o leitor possua uma boa base de java 5.0, design patterns, e algum conhecimento
sobre bancos de dados.
Conselhos!
Na confeco deste projeto, utili!ei"me da #$% Netbeans 5.0 beta &, e
aconselho enfaticamente que o leitor deste artigo possua a mesma instalada. No
um pr"requisito, entretanto, o 'atisse ser( de grande valia na construo da )*#.
Vamos comear?
7omo a proposta deste artigo + construir um aplicati!o bastante simples, s8 teremos uatro
classes en!ol!idas no processo, a nossa classe 9anager, ue ira (a)er todo o !alidao, acesso e
persist"ncia dos nossos dados, uma classe :isual, ue ser# a GU; com o usu#rio, o ,essoa4ean e a nossa
classe 9ain, ue ir# iniciali)ar o aplicati!o. Seu projeto de!e (icar parecido com este:
<amb+m assegure=se de ter a biblioteca db5o=>.? adicionada ao seu projeto. 6la pode ser
conseguida no site do desen!ol!edor: www.db5o.com.
Grupo de Usu#rios Ja!a @ http://www.guj.com.br @ ,#gina A
GUJ
http://www.guj.com.br
Atente!
%m uma aplicao real, voc+ teria que atentar para toda uma abordagem ',-
e modelagem especial, garantindo a legibilidade do c.digo e sua e/tensibilidade.
Construindo nossa aplicao
3ossa classe 9anager de!e possuir os seguinte m+todos: open-String bank/, ue ir# estabelecer
a comunicao com o nosso banco de dados0 close-/, ue ir# (echar a cone&o com o nosso banco de
dados0 get-,essoa4ean pessoa/,ue ser# o bean com o ual iremos trabalhar, e del-/ ue ser#
respons#!el por deletar o nosso bean.
6is o c8digo do nosso 9anager.ja!a:
package guj;
import guj.bean.PessoaBean;
import java.util.List;
import java.util.ArrayList;
import com.db4o.Db4o;
import com.db4o.ObjectContainer;
import com.db4o.et.!tObjectContainer;
import com.db4o.Object"et;
#$$
$
$ %aut&or 'talo
$#
public class manager(
private !tObjectContainer db;
private "tring location;

#$$ )ecebe como argumento a locali*a+,o do banco. -ma
$entrada v.lida seria /db.yap/
$#
public manager0"tring dbLocation1 (
location 2 dbLocation;
open01;
3
#$$ Busca uma pessoa no banco e deleta os resultados$#
public void del0 4uncionarioBean bean 1(

Object"et obj;
obj 2 db.get0bean1;
5&ile0 obj.&as6et01 1
db.delete0 obj.net01 1;
3
#$$ )etorna o nosso bean$#
public List get0 PessoaBean bean 1(

Object"et obj;
obj 2 db.get0bean1;
"ystem.out.println0 78aman&o do resultado9 7: obj.si*e01 1;

List;PessoaBean< list 2 ne5 ArrayList;PessoaBean<01;

5&ile 0 obj.&as6et01 1
list.add00PessoaBean1obj.net011;

return list;
3
#$$ = importante >ue o bean passado como argumento seja
$ copiado em outro bean? pois o db4objects mant@m uma reAerBncia
$ aos beans nele adicionados.
$#
public void store0 4uncionarioBean bean 1(
PessoaBean pb 2 ne5 PessoaBean01;
pb.set6ome0bean.get6ome011;
pb.set!nd0bean.get!nd011;
db.set0pb1;
3
#$$ Abre a cone,o com o banco de dados
Grupo de Usu#rios Ja!a @ http://www.guj.com.br @ ,#gina B
GUJ
http://www.guj.com.br
6ote tamb@m >ue mesmo o db criando um ObjectContainer
o >ue realmente @ usado pela aplica+,o @ o !tObjectContainer
>ue @ uma instCncia do ObjectContainer sD >ue mais completa e
apropriada para produ+,o. $#
public void open01(
ObjectContainer db 2 Db4o.open4ile0location1;
t&is.db 2 db.et01;
3

public void close01(
iA0Et&is.db.isClosed011
db.close01;
3
3
Cuando open-/ + chamado, um arui!o igual ao argumento passado ao manager + criado no diret8rio
rai)-onde est# seu .jar/. 6ste arui!o ser# onde nossos dados sero persistidos. 3ote ue !oc" no precisa in(ormar
ao banco a (orma do seu bean, antes de pass#=lo para persist"ncia. *gora !ejamos o nosso bean:
package guj;
#$$
$
$ %aut&or 'talo
$#
public class PessoaBean (

private "tring nome;
private "tring end;

#$$ Creates a ne5 instance oA PessoaBean $#
public PessoaBean01 (
3
public "tring get6ome01 (
return nome;
3
public void set6ome0"tring nome1 (
t&is.nome 2 nome;
3
public "tring get!nd01 (
return end;
3
public void set!nd0"tring end1 (
t&is.end 2 end;
3

3
3ote ue nosso bean, tamb+m + e&tremamente simples, no precisando e&tender absolutamente
nada. 7om apenas estas duas classes, !oc" acaba de criar a camada de persist"ncia do seu projeto. ,ara
(inali)ar, crie sua gui, contendo os campos do seu bean, e adeue o seu m+todo main da classe 9ain
para ue ele inicali)e a gui e receba como argumento o seu manager.
*ui est# uma sugesto de GU;:

Grupo de Usu#rios Ja!a @ http://www.guj.com.br @ ,#gina D
GUJ
http://www.guj.com.br
Concluso
3este artigo (oi apresentado como + (#cil e r#pido se construir um aplicati!o com acesso a banco de
dados utili)ando o db5o, ue junto a sua licensa gpl o torna um grande atrati!o para desen!ol!edores
ue gostam de agilidade e poder em sua codi(icao. 6m caso de dE!idas ou sugestFes, mande=me um
email, obrigado.
Italo Moreira Campelo Maia-italo.maia@gmail.com.br/ + atualmente programador da 7agece, 7ear#.
Grupo de Usu#rios Ja!a @ http://www.guj.com.br @ ,#gina 5

Você também pode gostar