Mini curso hibernate com anotações

Embed Size (px)

Citation preview

HIBERNATE Com anotaes

HIBERNATE COM ANOTAESEquipe:Antonio Geroncio dos SantosDiego Araujo Ferreira de MeloJameson Brito CarlindoCurso:
Anlise e Desenvolvimento de SistemasMatria: Programao Web IIProfessor: Roberth PinheiroFaculdade de Tecnologia de Alagoas

SUMRIO

Introduo ao HibernateSlide 03Arquitetura HibernateSlide 04,05,06Como utilizar o Hibernate com anotaesSlide 07Configurando o Hibernate-config.xmlSlide 08Especificando o Hibernate-config.xmlSlide 09Dialetos do HibernateSlide 10Classe Hibernate-UtilSlide 11Objeto AlunoSlide 12Classe Aluno-DAOSlide 13ResultadosSlide 14,15,16,17ConclusoSlide 18

INTRODUO AO HIBERNATEO Hibernate um framework de mapeamento objeto relacional para aplicaes Java, ou seja, uma ferramenta para mapear classes Java em tabelas do banco de dados e vice-versa. bastante poderoso e d suporte ao mapeamento de associaes entre objetos, herana, polimorfismo, composio e colees.

O Hibernate no apresenta apenas a funo de realizar o mapeamento objeto relacional. Tambm disponibiliza um poderoso mecanismo de consulta de dados, permitindo uma reduo considervel no tempo de desenvolvimento da aplicao.

Inicialmente, o mapeamento objeto relacional com Hibernate era feito a partir de um conjunto de configuraes em arquivos XMLS. Com o surgimento das anotaes no Java SE 5.0, o framework Hibernate anexou este recurso, permitindo que as classes Java fossem mapeadas a partir de anotaes, simplificando o seu uso.

ARQUITETURA HIBERNATEAs principais so: SessionSessionFactoryConfigurationTransactionQuery

Os sub-tpicos seguintes apresentam uma descrio mais detalhada sobre elas.

ARQUITETURA HIBERNATESession (org.hibernate.Session)

O objeto Session aquele que possibilita a comunicao entre a aplicao e a persistncia, atravs de uma conexo JDBC. um objeto leve de ser criado, no deve ter tempo de vida por toda a aplicao e no threadsafe. Um objeto Session possui um cache local de objetos recuperados na sesso. Com ele possvel criar, remover, atualizar e recuperar objetos persistentes.SessionFactory (org.hibernate.SessionFactory)

O objeto SessionFactory aquele que mantm o mapeamento objeto relacional em memria. Permite a criao de objetos Session, a partir dos quais os dados so acessados, tambm denominado como fbrica de objetos Sessions. Um objeto SessionFactory threadsafe, porm deve existir apenas uma instncia dele na aplicao, pois um objeto muito pesado para ser criado vriasvezes.

Configuration (org.hibernate.Configuration)

Um objeto Configuration utilizado para realizar as configuraes de inicializao do Hibernate. Com ele, define-se diversas configuraes do Hibernate, como por exemplo: o driver do banco de dados a ser utilizado, o dialeto, o usurio e senha do banco, entre outras. a partir de uma instncia desse objeto que se indica como os mapeamentos entre classes e tabelas de banco de dados devem ser feitos.Transaction (org.hibernate.Transaction)

A interface Transaction utilizada para representar uma unidade indivisvel de uma operao de manipulao de dados. O uso dessa interface em aplicaes que usam Hibernate opcional. Essa interface abstrai a aplicao dos detalhes das transaes JDBC, JTA ou CORBA.Interfaces Criteria e Query

As interfaces Criteria e Query so utilizadas para realizar consultas ao banco de dados.ARQUITETURA HIBERNATE

COMO UTILIZAR O HIBERNATE COM ANOTAESPara utilizar o Hibernate Annotation, primeiramente, preciso copiar sua verso atual do site http://hibernate.org, disponvel em um arquivo compactado. Ento, este arquivo deve ser descompactado e seu contedo consiste em um conjunto de arquivos JARS. Esses arquivos devem ser copiados para o diretrio das libs de sua aplicao. Os arquivos hibernate-annotations.jar e lib/ejb3-persistence.jar tambm devem referenciados no classpath da aplicao, juntamente com a classe do driver do banco de dados utilizado.

CONFIGURANDO O HIBERNATE-CONFIG.XML

EXPECIFICANDO O HIBERNATE.CFG.XMLhibernate.dialect

implementao do dialeto SQL especfico 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 conexo especfica do banco que est sendo utilizado;hibernate.connection.username

o nome de usurio com o qual o Hibernate deve se conectar ao banco;hibernate.connection.password

a senha do usurio com o qual o Hibernate deve se conectar ao banco; hibernate.show_sqlutilizado para definir se os SQLS gerados pelo Hibernate devem ou no ser exibidos (true | false).

J no final do arquivo hibernate.cfg.xml onde devem ser informados osarquivos das classes mapeadas que o Hibernate deve processar. Se alguma classeno for definida neste local, a mesma no poder ser persistida utilizando osmecanismos do Hibernate.

DIALETOS DO HIBERNATEDB2 org.hibernate.dialect.DB2DialectHypersonicSQL org.hibernate.dialect.HSQLDialectInformix org.hibernate.dialect.InformixDialectIngres org.hibernate.dialect.IngresDialectInterbase org.hibernate.dialect.InterbaseDialectPointbase org.hibernate.dialect.PointbaseDialectPostgreSQL org.hibernate.dialect.PostgreSQLDialectMckoi SQL org.hibernate.dialect.MckoiDialectMicrosoft SQL Server org.hibernate.dialect.SQLServerDialectMySQL org.hibernate.dialect.MySQLDialectOracle (any version) org.hibernate.dialect.OracleDialectOracle 9 org.hibernate.dialect.Oracle9DialectProgress org.hibernate.dialect.ProgressDialectFrontBase org.hibernate.dialect.FrontbaseDialectSAP DB org.hibernate.dialect.SAPDBDialectSybase org.hibernate.dialect.SybaseDialectSybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect

CLASSE HIBERNATE-UTIL

OBJETO ALUNO

CLASSE ALUNO-DAO

RESULTADOS

RESULTADOS

RESULTADOS

RESULTADOS

ANOTAESPara o mapeamento com anotaes das entidades, sero utilizadas tanto anotaes do pacote javax.persistence.*, como do pacote org.hibernate.annotations.Todas as classes persistentes mapeadas com anotaes so declaradas usando a anotao @Entity, aplicada em nvel de classes. Quando o nome da classe diferente do nome da tabela para a qual mapeada necessrio informar na anotao @Table qual o nome da tabela, usando o atributo name.

EXEMPLOS DE ANOTAESNos demais atributos da classe pode no ter nenhuma anotao de mapeamento. Isso pode ser feito quando o nome do atributo igual ao nome da coluna da tabela mapeada, de forma que no h a necessidade de mapeamento explcito!

@Table(name="aluno",schema="anotacoes")est informando o nome e o esquema da tabela para qual est mapeada a classe aluno.@IdA chave primria da tabela mapeada na classe.@GeneratedValuepermite a definio automtica para o valor do identificador, utilizando um dos mecanismos de gerao apresentados anteriormente.@Column(name=cod_aluno)informando o nome da coluna, atravs do atributoname.

CONCLUSOEstamos deixando a disposio o projeto elaborado em nossa apresentao, onde no projeto encontra-se todas as libs necessrias para desenvolver usando Hibernate com anotaes, colocamos tambm o backup do banco de dados est incluso na pasta tambm, o driver de conexo com o banco de dados postgres, e o projeto salvando e listando os objetos do banco de dados, espero que tenham gostado. E tambm segue uma apostila da caelum para maiores informaes, fizemos nossa apresentao em cima da apostila, onde pegamos os pontos principais e fizemos resumos tericos e aplicamos a prtica bem elaborada.

Clique na imagem para abrir a repositrio com todos os arquivos da apresentaoAtenciosamente,Antonio Geroncio dos SantosDiego Araujo Ferreira de MeloJameson Brito CarlindoSlides encontra-se publicado no http://www.slideshare.net/dieguinhomcz