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