Introduction au framework Nhibernate -
Cours : Introduction au framework Nhibernate -. Recherche parmi 300 000+ dissertationsPar dissertation • 12 Mars 2013 • Cours • 7 451 Mots (30 Pages) • 849 Vues
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
...