LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Introduction au framework Nhibernate -

Cours : Introduction au framework Nhibernate -. Recherche parmi 300 000+ dissertations

Par   •  12 Mars 2013  •  Cours  •  7 451 Mots (30 Pages)  •  849 Vues

Page 1 sur 30

Introduction au framework Nhibernate

pour la plateforme .NET

serge.tahe at istia.univ-angers.fr, décembre 2011

http://tahe.developpez.com 1/45

1 Introduction à l'ORM NHIBERNATE

Ce document est une introduction succincte à NHibernate, l'équivalent pour .Net du framework Java Hibernate. Pour une

introduction complète on pourra lire :

Titre : NHibernate in Action, Auteur : Pierre-Henri Kuaté, Editeur : Manning, ISBN-13 : 978-1932394924

Un ORM (Object Relational Mapper) est un ensemble de bibliothèques permettant à un programme exploitant une base de

données d'exploiter celle-ci sans émettre d'ordres SQL explicites et sans connaître les particularités du SGBD utilisé.

Le document est illustré par deux solutions Visual Studio 2010 qu'on trouvera à l'Url

[http://tahe.developpez.com/dotnet/nhibernate].

Pré-requis

Dans une échelle [débutant-intermédiaire-avancé], ce document est dans la partie [intermédiaire]. Sa compréhension nécessite divers

pré-requis qu'on pourra trouver dans certains des documents que j'ai écrits :

1. Langage C# 2008 : [http://tahe.developpez.com/dotnet/csharp/]

2. [Spring IoC], disponible à l'url [http://tahe.developpez.com/dotnet/springioc]. Présente les bases de l'inversion de

contrôle (Inversion of Control) ou injection de dépendances (Dependency Injection) du framework Spring.Net

[http://www.springframework.net].

Des conseils de lecture sont parfois donnés au début des paragraphes de ce document. Ils référencent les documents précédents.

Outils

Les outils utilisés dans cette étude de cas sont librement disponibles sur le web. Ce sont les suivants (décembre 2011) :

• Nhibernate 3.2 disponible à l'Url [http://nhforge.org/Default.aspx]

• Spring.net 1.3.2 disponible à l'Url [http://www.springframework.net]. Le framework Spring.net est très riche. Nous

utiliserons ici que la bibliothèque qu'il amène pour faciliter l'utilisation du framwork Nhibernate.

• Log4net 1.2.10 disponible à l'Url [http://logging.apache.org/log4net]. Ce framework de logs est utilisé par Nhibernate.

• Nunit 2.5 disponible à l'Url [http://www.nunit.org/]. Ce framework de tests unitaires est l'équivalent pour .Net du

framework JUnit pour la plate-forme Java.

• Le pilote ADO.NET 6.4.4 du Sgbd MySQL 5 disponible à l'Url [http://dev.mysql.com/downloads/connector/net]

L'ensemble des Dll nécessaires aux projets Visual Studio 2010 ont été rassemblés dans un dossier [libnet4] :

http://tahe.developpez.com 2/45

1.1 La place de NHIBERNATE dans une architecture .NET en couches

Une application .NET utilisant une base de données peut être architecturée en couches de la façon suivante :

La couche [dao] communique avec le SGBD via l'API ADO.NET. Rappelons les principales méthodes de cette API.

En mode connecté, l'application :

1. ouvre une connexion avec la source de données

2. travaille avec la source de données en lecture/écriture

3. ferme la connexion

Trois interfaces ADO.NET sont principalement concernées par ces opérations :

• IDbConnection qui encapsule les propriétés et méthodes de la connexion.

• IDbCommand qui encapsule les propriétés et méthodes de la commande SQL exécutée.

• IDataReader qui encapsule les propriétés et méthodes du résultat d'un ordre SQL Select.

L'interface IDbConnection

Sert à gérer la connexion avec la base de données. Parmi les méthodes M et propriétés P de cette interface on trouve les suivantes :

Nom Type Rôle

ConnectionString P chaîne de connexion à la base. Elle précise tous les paramètres nécessaires à l'établissement de la

connexion avec une base précise.

Open M ouvre la connexion avec la base définie par ConnectionString

Close M ferme la connexion

BeginTransaction M démarre une transaction.

State P état de la connexion : ConnectionState.Closed, ConnectionState.Open, ConnectionState.Connecting,

ConnectionState.Executing, ConnectionState.Fetching, ConnectionState.Broken

Si Connection est une classe implémentant l'interface IDbConnection, l'ouverture de la connexion peut se faire comme suit :

1. IDbConnection connexion=new Connection();

2. connexion.ConnectionString=...;

3. connexion.Open();

L'interface IDbCommand

Sert à exécuter un ordre SQL ou une procédure stockée. Parmi les méthodes M et propriétés P de cette interface on trouve les

suivantes :

Nom Type Rôle

CommandType P indique ce qu'il faut exécuter - prend ses valeurs dans une énumération :

- CommandType.Text : exécute l'ordre SQL défini dans la propriété CommandText. C'est la valeur par

...

Télécharger au format  txt (63.3 Kb)   pdf (526.7 Kb)   docx (41.4 Kb)  
Voir 29 pages de plus »
Uniquement disponible sur LaDissertation.com