NHibernate

658 views
619 views

Published on

Apresentação sobre Hibernate na plataforma do Visual Stúdio 2005, onde foram abordados seus conceitos como motivos de sua utilização, pontos fracos, pontos fortes, como integrá-lo no sistema, quais arquivos precisam ser gerados para o mapeamento e como realizar consultas utilizando o HQL (linguagem sql do Hibernate).

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
658
On SlideShare
0
From Embeds
0
Number of Embeds
84
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

NHibernate

  1. 1. Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
  2. 2. Conteúdo da Apresentação <ul><li>Porque usar Hibernate </li></ul><ul><li>Como ele funciona </li></ul><ul><li>Arquivos necessários para o Nhibernate </li></ul><ul><li>Pontos Positivos </li></ul><ul><li>Pontos Negativos </li></ul><ul><li>Prática </li></ul><ul><li>Referências </li></ul>
  3. 3. Porque usar Hibernate
  4. 4. Persistência dos Objetos Objetos da Camada de Dados (Repositório) Dados Microsoft SQL Server 2005/2000 Oracle Microsoft Access Firebird PostgreSQL DB2 UDB MySQL SQLite
  5. 5. Arquivos Necessários <ul><li>Arquivo de Mapeamento. </li></ul><ul><li>Arquivo de Configuração do NHibernate. </li></ul><ul><li>API do NHibernate. </li></ul>
  6. 6. Arquivo de Mapeamento Tabela: AVISO_INSCRICAO
  7. 7. Arquivo de Mapeamento <ul><li>Public class AvisoInscricao </li></ul><ul><li>{ </li></ul><ul><li>private int _id; </li></ul><ul><li>private string _aviso_inscricaoname; </li></ul><ul><li>private bool _deletado; </li></ul><ul><li>... </li></ul><ul><li> public virtual int Id </li></ul><ul><li>{ </li></ul><ul><li>get{ return _id;} </li></ul><ul><li>set{isChanged |=(_id != value); _id = value;} </li></ul><ul><li>} </li></ul><ul><li>public virtual bool Deletado </li></ul><ul><li>{ </li></ul><ul><li>get{ return _deletado;} </li></ul><ul><li>set{isChanged |=(_deletado != value); _deletado = value;} </li></ul><ul><li>} </li></ul><ul><li>... </li></ul><ul><li>} </li></ul>
  8. 8. Arquivo de Mapeamento <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> </li></ul><ul><li><hibernate-mapping xmlns=&quot;urn:nhibernate-mapping-2.2&quot; assembly=&quot;BVR_CPM_ClassesBasicas&quot; namespace=&quot;BVR_CPM_ClassesBasicas&quot; default-lazy=&quot;false&quot;> </li></ul><ul><li><class name=&quot;BVR_CPM_ClassesBasicas.AvisoInscricao,BVR_CPM_ClassesBasicas&quot; table=&quot;CPM_AVISO_INSCRICAO&quot;> </li></ul><ul><li><id name=&quot;Id&quot; column=&quot;ID&quot; type=&quot;Int32&quot; unsaved-value=&quot;0&quot;> </li></ul><ul><li><generator class=&quot;native&quot; /> </li></ul><ul><li></id> </li></ul><ul><li><property column=&quot;AVISO_INSCRICAO&quot; type=&quot;String&quot; name=&quot;AvisoInscricaoName&quot; not-null=&quot;true&quot; length=&quot;2147483647&quot; /> </li></ul><ul><li><property column=&quot;DELETADO&quot; type=&quot;Boolean&quot; name=&quot;Deletado&quot; not-null=&quot;true&quot; /> </li></ul><ul><li></class> </li></ul><ul><li></hibernate-mapping> </li></ul>
  9. 9. Arquivo de Configuração
  10. 10. Arquivo de Configuração <ul><li><?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?> </li></ul><ul><li><hibernate-configuration xmlns=&quot;urn:nhibernate-configuration-2.2&quot; > </li></ul><ul><li><session-factory name=&quot;NHibernate.NHROWS&quot;> </li></ul><ul><ul><li><!-- properties --> </li></ul></ul><ul><ul><li><property name=&quot;connection.provider&quot;>NHibernate.Connection.DriverConnectionProvider </li></ul></ul><ul><ul><li></property> </li></ul></ul><ul><ul><li><property name=&quot;connection.driver_class&quot;>NHibernate.Driver.SqlClientDriver</property> </li></ul></ul><ul><ul><li><property name=&quot;connection.connection_string&quot;>Data Source=SRV-DB;Initial Catalog=BVR_CPM_BASE; Persist Security Info=True;User ID=sa; password=Redes21220 </li></ul></ul><ul><ul><li></property> </li></ul></ul><ul><ul><li><property name=&quot;dialect&quot;>NHibernate.Dialect.MsSql2005Dialect</property> </li></ul></ul><ul><ul><li><!-- mapping files --> </li></ul></ul><ul><ul><li><mapping assembly=&quot;BVR_CPM_Repositorios&quot; /> </li></ul></ul><ul><li></session-factory> </li></ul><ul><li></hibernate-configuration> </li></ul>
  11. 11. API do NHibernate
  12. 12. Pontos Positivos/Negativos <ul><li>Positivos </li></ul><ul><ul><li>Separação do código em camadas. </li></ul></ul><ul><ul><li>Tratamento contra SQL Injection. </li></ul></ul><ul><ul><li>Abrange a maioria dos bancos de dados. </li></ul></ul><ul><li>Negativo </li></ul><ul><ul><li>Grande quantidade de código gerada, aumenta a chance de erros de código. </li></ul></ul><ul><ul><li>Não é mais rápido do que uma consulta direto no banco. </li></ul></ul><ul><ul><li>Amarração a coleção de objetos. </li></ul></ul>
  13. 13. Prática
  14. 14. Referências <ul><li>http://www.macoratti.net/08/12/vbn_hib1.htm </li></ul><ul><li>http://www.linhadecodigo.com.br/Artigo.aspx?id=546 </li></ul><ul><li>http://www.linhadecodigo.com.br/Artigo.aspx?id=2140 </li></ul>

×