Canalblog
Suivre ce blog Administration + Créer mon blog

MiniTech

6 octobre 2011

Accès génériques aux bases de données

Le besoin de communiquer avec un SGDB n'est pas nouveau. Nombreuses applications nécessitent la manipulation de données, ces données sont généralement stockées dans des bases de données. Chaque système de bases de données possède ses propres méthodes d'accès, ce qui ne facilite pas les tâches des programmeurs désireux de s'y connecter.

 

            En Visual Basic.net, Microsoft fourni plusieurs méthodes d’accès aux bases de données qui sont :

  • L'Api ODBC (Open DataBase Connectivity). Il s'agit d'une méthode permettant la communication entre des clients bases de données fonctionnant sous Windows et presque tous les SGBD existant. Cette méthode est universelle mais n'est pas très efficace.
  • Les providers ( SqlClient, Ole Db, etc.) fourni par le Framework .NET.
  • Les providers dédié fourni par la société qui a créé le logiciel de base de données

            Le principal problème de ces méthodes est la dépendance à la base de données. En effet, si demain, le choix est fait de changer le gestionnaire de base de données, il faut reprendre tout le code pour modifier tout ce qui est lié SGBD comme les objets connections, commande etc. (passer des connexions MS SQL Server, aux connexions MySQL par exemple).

             C’est ainsi que Microsoft à trouvé une solution en fournissant un ensemble de classes DbProviderFactories permettant de se connecter presque tout les gestionnaires de base de données. Le DbProviderFactories posséde des méthodes statiques permettant de créer des  instances de DbProviderFactory. Une instance du DBProviderFactory permet de créer une connexion à la base de données, il suffit juste de lui  léguer le fournisseur de données (OLEDB, SqlClient...) du SGBD.

 

Exemple : avec une base de SQL Server

Private Shared factory As DbProviderFactory = DbProviderFactories.GetFactory("System.Data.SqlClient")

   

Private Shared connection As DbConnection = factory.CreateConnection()

connection.ConnectionString = "Data Source=DGE-MLDIALLO\SQLEXPRESS02;Initial Catalog=EMP_MOUVEMENT;User ID=sa;Password=sa02"

connection.Open()

 

            Pour rendre vos applications totalement indépendantes,  il serait préférable de mettre les informations sur le fournisseur  de données et de la chaine de connexion dans un fichier de configuration.

 

            Avec Java ce problème de se pose presque pas. Il suffit juste de mettre dans un fichier properties toutes les informations sur le gestionnaire de la base de données utilisé.

Publicité
Publicité
MiniTech
Publicité
Archives
Publicité