Java, Hibernate: Configurando (XML)

6 11 2007

Antes de mais nada, gostaria de ressaltar que este eh o primeiro post relacionado ao Hibernate.

Assim como alguns, estou “experimentando” sua utilizacao, uma escolha profissional e nao pessoal.

De forma resumida:
Hibernate, eh framework para acesso a banco de dados relacionais.
Mais informacoes em www.hibernate.org

Ao que interessa,

Estarei utilizando o MySQL como referencia e o eclipse como IDE de desenvolvimento.

O hibernate utiliza arquivos XML para configuracao por default, sendo assim iremos criar um arquivo XML chamado hibernate.cfg.xml que devera estar contido dentro da pasta de sources do seu projeto.

Passo 1 – Definindo a tag XML e o DOCTYPE (tipo de documento)

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

Passo 2 – Configuracao do Hibernate

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/SuaTabela</property>
<property name="hibernate.connection.username">usuario</property>
<property name="hibernate.connection.password">senha</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping resource="SuaClasse.hbm.xml"/>
</session-factory>
</hibernate-configuration>

Descrevendo o arquivo acima:

  1. connection.driver_class: Define o driver do banco de dados que sera utilizado.
  2. connection.url: URL do banco de dados junto a base de dados que sera utilizada.
  3. connection.username e connection.password: Usuario e senha do banco de dados.
  4. dialect: Implementacao do dialeto SQL do banco de dados especificado.
  5. show_sql: Configuracao do log SQL pelo Hibernate, otimo para sistemas em producao.

Passo 3 – Mapping, Resource

O mapping merece um passo soh pra ele, pois neste passo sera configurado o mapeamento da SuaClasse em especifico, normalmente alguns programadores inserem direto no codigo de configuracao do hibernate, mais sinceramente eu prefiro cada “macaco no seu galho”.

O arquivo SuaClasse.hbm.xml tambem devera estar na mesma pasta (sources) do hibernate.cfg.xml justamente por eu nao ter passado nenhum endereco na propriedade resource.

<hibernate-mapping>
<class name="SuaClasse" table="SuaTabela">
<id name="id" column="id" type="int">
<generator class="assigned"/>
</id>
<property name="nome" column="nome" type="string"/>
</class>
</hibernate-mapping>

Bom, como a classe eh minha, entao ela possui apenas os campos id e nome, int e String, respectivamente e logicamente o id sera nossa chave primaria como foi determinado na tag id do XML. O mapeamento como pode-se ver eh muito dedutivo, basta configurar de acordo com sua classe de persistencia/banco de dados/projeto, no meu caso eu me espelhei no meu banco de dados que possui apenas dois campos, a chave primaria id e o campo do tipo Varchar nome.

Falando em classe de persistencia, vou colocar aqui a que eu utilizei, SuaClasse.class.


@Entity
public class SuaClasse {


@Id
@GeneratedValue
private int id;
private String nome;


public SuaClasse() {
}
public SuaClasse(String nome){
this.nome = nome;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}

}

Existe algumas annotations em meu codigo, mais eh um assunto bem interessante, entao por alto sao meta-informacoes que “marcam” ou “criam notas” em pedacos de codigo com intuito de ser utilizado mais pra frente de diversas formas.

… finalizando, certamente isso eh apenas a configuracao, pois foi a parte que eu precisei de mais detalhes para compreender o funcionamento do hibernate, ainda poderiam ser abordados temas como: Criacao de tabelas no banco de dados a partir da classe de persistencia, ou ate mesmo aprofundar mais no uso dos annotations e assim vai, mais isso fica para uma outra hora.

Obs: Continuo sem acentos, malditos acentos.





Open Laszlo

23 08 2006

Boa Noite pessoal,

Ultimamente tenho estudado uma parada muito foda para desenvolver interfaces ricas em Java, acho que é um boa vocês darem uma olhada. A tecnologia é conhecida como Laszlo, … acho que já comentei com Indião mais ele não deu muita importancia ( viadinho… hehehe ).

A definição é a seguinte:

Open Laszlo

Laszlo é uma plataforma que consiste na linguagem do LZX e a LPS (the Laszlo Presentation Server).

LZX é um XML e descrição da linguagem JavaScript similar com espirito XUL e XAML. LZX hábil e declarativo, texto baseado em processo de desenvolvimento que suporta rápida prototipação e desenvolvimento de software com excelente performance.

The Laszlo Presentation Server (LPS) é um Servlet que compila a aplicação LZX para executar em tempo real. Laszlo é renderizado no Flash Player ou em DHTML.

Deu para entender? Acho que não né. Faz o seguinte da uma olhada nos exemplos de aplicação que da pra fazer com esse framework no link abaixo:
http://www.openlaszlo.org/demos

Pra quem tiver interesse da uma olhada nesse manual

http://www.laszlosystems.com/lps/laszlo-in-ten-minutes/

É a documentação mais pratica que já vi em toda minha vida. Vc pode até editar os exemplos de codigo e rodar no proprio browser.

Anderson.





WebServices em PHP

22 08 2006

Ae galera,

Estou colocando um link interessante de como se criar WebServices em php, pois vamos precisar em breve.

http://webservices.xml.com/pub/a/ws/2004/03/24/phpws.html