
O Hibernate é um framework para o mapeamento Objeto-Relacional escrito na linguagem Java, mas também é disponível em .Net como o nome NHibernate. Ele facilita o mapeamento dos atributos entre uma base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante o uso de arquivos (XML) para estabelecer esta relação. O objetivo do Hibernate é diminuir a complexidade entre os programas Java, baseado no modelo orientado a objeto. Mas o framework não é uma boa opção para todos os tipos de aplicação, ele é mais indicado para sistemas que contam com um modelo rico, onde a maior parte da lógica de negócios fica na própria aplicação Java. Segundo a documentação oficial o Hibernate pretende retirar do desenvolvedor cerca de 95% das tarefas mais comuns de persistência de dados.
Como opção, iremos utilizar um recurso que veio com o JDK 5.0, chamado de Annotation ao invés de arquivos XML como eram feitos anteriormente. Resumindo o Hibernate transforma os dados de um objeto em uma linha de uma tabela de um banco de dados, ou de forma inversa. Com o mapeamento via anotações não é necessário criar nenhum arquivo XML para fazer o mapeamento, apenas colocar as anotações (Annotations) na classe POJO relacionada a tabela. Com o Hibernate também é possível mapear todos os relacionamentos existentes entre as tabelas de um banco de dados relacional.
Exemplo:

Algumas Annotations:
@Entity: declara a classe como uma entidade, ou seja, uma classe persistente.
@Table: define qual será o nome da tabela usando o atributo name.
@Id: define qual campo será usado como identificador.
@GeneretedValue: identifica a estratégia de geração de identificadores.
@Column: define qual coluna da tabela será mapeada.
- name: nome da coluna na tabela do banco de dados que representa o atributo;
- unique: indica se a coluna na tabela que representa o atributo possui a restrição de unicidade ou não. Por padrão, assume o valor false;
- nullable: indica se a coluna na tabela que representa o atributo pode assumir valor nulo ou não. Por padrão, assume o valor true indicando que pode assumir valores nulos;
- length: informa o tamanho máximo assumido pelo valor da coluna na tabela;
- precision: informa a precisão decimal dos possíveis valores para a coluna mapeada pelo atributo;
- insertable: indica se o atributo será inserido no momento da inserção de uma linha na tabela. Por padrão assume o valor true;
- updatable: indica se o atributo será atualizado no momento da atualização de uma linha na tabela. Por padrão assume o valor true.
@Temporal: utilizada para mapeamento de datas e hora. Recebe um valor como argumento que pode ser:
- TemporalType.DATE: usado para mapear datas;
- TemporalType.TIME: usado para mapear hora;
- TemporalType.TIMESTAMP: usado para mapear datas e hora.
As descrições das propriedades a serem configuradas são:
- hibernate.dialect: implementação do dialeto SQL específico do banco de dados a ser utilizado. Usado para identificar as particularidades do banco de dados;
- hibernate.connection.driver_class: nome da classe do driver JDBC do banco de dados que está sendo utilizado;
- hibernate.connection.url: é a URL de conexão específica do banco que está sendo utilizado;
- hibernate.connection.username: é o nome de usuário com o qual o Hibernate deve se conectar ao banco;
- hibernate.connection.password: é a senha do usuário com o qual o Hibernate deve se conectar ao banco;
- hibernate.show_sql: utilizado para definir se os SQL’s gerados pelo Hibernate devem ou não ser exibidos no console (true | false).
Abraços e até o próximo...
boa!!!
ResponderExcluir